Crates.io | xaeroflux |
lib.rs | xaeroflux |
version | |
source | src |
created_at | 2025-04-11 19:36:11.465733+00 |
updated_at | 2025-04-11 19:36:11.465733+00 |
description | EXPERIMENTAL: This crate is not ready for production use |
homepage | |
repository | |
max_upload_size | |
id | 1630251 |
Cargo.toml error: | TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
⚠️ Work in progress - NOT READY FOR PRODUCTION USE !!
Xaeroflux is a decentralized storage and indexing engine designed for cloudless, peer-to-peer social networks. It leverages RocksDB for efficient event storage, a Merkle tree-based indexing mechanism for data integrity and diffing, and uses asynchronous, minimal-threaded designs for mobile-friendly performance on platforms like iOS and Android.
Note: This is an evolving codebase currently under active development. It includes experimental features and a developing test suite. See the issues section for known limitations and planned improvements.
Decentralized P2P Sync:
Supports cloudless peer-to-peer communication where each group maintains its own DHT for peer and content discovery.
Efficient Event Storage:
Utilizes RocksDB with a dedicated column family for event logs. Events are stored as raw u8
bytes, then decoded and indexed.
Merkle Tree Indexing:
Events are indexed via a Merkle tree, where each page (e.g., 16 KB pages) holds 512 nodes. This allows for fast and secure diffing between peers.
Concurrency with Crossbeam Channels:
An internal pipeline is implemented to handle raw event ingestion, decoding, indexing, and advertisement using lightweight worker threads.
Write-Ahead Logging (WAL):
Maintains data integrity via a WAL file, updated through memory-mapped I/O and Mio for non-blocking operations.
Modular & Extensible Architecture:
Components are separated into clear modules for core logic, indexing, storage metadata, and logging, ensuring ease of development and testing.
src/core/
Contains the central components:
mod.rs
: Core logic and application state management.storage_meta.rs
: Definitions and traits for storage metadata, including header and footer structures.swimming.rs
: Experimental or utility modules (naming hinting at dynamic behaviors in data processing).src/indexing/
Contains the indexing logic for the Merkle tree:
merkle_tree.rs
: Implements the Merkle tree data structure, including node and tree operations.storage.rs
: Handles storage-specific functions and page management (e.g., mmapped file segmentation).src/logs/
Contains logging and diagnostic helpers:
mod.rs
: Central logging configuration.probe.rs
: Tools for performance probing and debugging.Clone the repository:
git clone https://github.com/block-xaero/xaeroflux.git
cd xaeroflux