No description
- Rust 100%
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| FIXME.txt | ||
| index-scans.txt | ||
| README.md | ||
Chorus
Chorus (will be) a nostr relay implementation.
Chorus is only available for the Linux operating system.
Chorus is developed in the rust language, and makes use of the following tricks in order to deliver high performance:
- Multithreaded: one thread per physical CPU core
- Asynchronous: threads don't block waiting on I/O, they instead find something else to do with their time.
- Memory mapped event data: events are stored in a memory-mapped file, utilizing linux's virtual memory management system for page swapping and persistence.
- Low copy: zero copy where available; kv indices are zero-copy reads;
- Binary serialization: fast binary machine-dependent serialization via speedy in most cases; slower serde serialization used for validation and signature checks only on the incoming event path.
- Mostly Lock-free: kv indices are lock free (tree, page cache, and log); event map is append-only so readers are not blocked by writer locks.
- Scatter/Gather: optimised for SSD and NVMe storage devices.
- Indexes: fast index scans with multiple btree-like indices.
Status
Early development. Unusable.