Expand description
§freedit
The safest and lightest forum, powered by rust.
Demo: https://freedit.eu/
GitHub: https://github.com/freedit-org/freedit
§Features
- Single-binary deployment – easy to run with an embedded sled database.
- Works without JavaScript – fully functional and secure even with JavaScript disabled. (Why avoiding JavaScript matters)
- End-to-end encrypted private messages – only sender and recipient can read.
- Math & code highlighting – rich formatting without JavaScript.
- Markdown support – write in clean, readable syntax.
- Inn – group spaces, like Subreddits.
- Solo – personal microblogging, like Twitter.
- Online RSS reader – follow and read feeds in one place.
- Podcast support – subscribe and listen directly through the platform.
§Usage
§From binary
- Download freedit binary from releases
- unzip freedit.zip
- run
./freedit
, open browser toaddr
, http://127.0.0.1:3001/
§From source code
Prerequisition: install Rust
git clone https://github.com/freedit-org/freedit
cd freedit && cargo build -r
./target/release/freedit
§FAQ
§How to generate podcast srt file?
whisper is used.
- Usage:
whisper ~/podcasts/1.mp3 --word_timestamps True --highlight_words True -f srt
§Documentation
-
online doc: https://freedit-org.github.io/freedit/freedit/index.html
-
generate local documentation:
cargo doc --no-deps --document-private-items --open
§Development
git clone https://github.com/freedit-org/freedit
cd freedit && cargo run
§Credits
- icon: https://iconoir.com/
- CSS framework: https://bulma.io/
- Rust crates: Cargo.toml
- Markdown editor: overtype
Modules§
- app_
router 🔒 - config 🔒
- controller 🔒
- model
- error 🔒
Structs§
Enums§
Constants§
Statics§
- CONFIG
- CURRENT_
SHA256 🔒 - Returns SHA256 of the current running executable. Cookbook: Calculate the SHA-256 digest of a file
- DB
Functions§
- clear_
invalid - Cron job: Scan all the keys in the
Tree
regularly and remove the expired ones. - cron_
download_ audio - cron_
feed - get_one
- get one object that has been encoded by bincode
- ivec_
to_ u32 - convert [IVec] to u32
- router
- set_one
- u8_
slice_ to_ u32 - convert
&[u8]
tou32