Reusable Rust libraries for the FreeSynergy ecosystem.
These libraries are project-agnostic — they are shared by FreeSynergy.Node, FreeSynergy.Desktop, Wiki.rs, Decidim.rs, and any future FreeSynergy project.
| Crate | Phase | Description |
|---|---|---|
fsn-types |
1 | Shared types and traits (Resource, Capability, Meta, TypeRegistry) |
fsn-error |
1 | Error handling + Repairable trait + ValidationIssue |
fsn-config |
1 | TOML config loader/saver with validation and auto-repair |
fsn-i18n |
1 | Snippet-based i18n (Fluent .ftl files, RTL support) |
fsn-theme |
1 | Theme system (theme.toml → TUI palette + CSS) |
fsn-help |
1 | Context-sensitive help topic system |
fsn-health |
1 | Generic health check framework |
fsn-db |
1 | Database abstraction (SQLite via rusqlite) |
fsn-core |
1 | Form types (FormAction, SelectionResult) — zero deps |
fsn-crypto |
2 | age encryption, mTLS, key management |
fsn-sync |
2 | CRDT sync (Automerge) |
fsn-pkg |
2 | Package manifest + capability matching + installer |
fsn-store |
2 | Universal store client with namespace support |
fsn-plugin-sdk |
3 | WASM plugin SDK (WIT interfaces) |
fsn-plugin-runtime |
3 | WASM host via wasmtime |
fsn-federation |
4 | OIDC + SCIM + ActivityPub |
fsn-auth |
4 | OAuth2 + JWT + RBAC |
fsn-container |
5 | Quadlet + systemd management (no socket, no bollard) |
fsn-template |
5 | Tera template engine wrapper |
fsn-bridge-sdk |
5 | Bridge interface traits |
fsn-bus |
6 | Message bus (event routing + Tera transform) |
fsn-channel |
6 | Channel adapters (Matrix, Telegram) |
fsn-bot |
6 | Bot command framework |
fsn-llm |
6 | LLM provider abstraction (Ollama, Claude) |
fsn-components |
7 | Dioxus UI components |
fsn-render |
7 | Rendering abstraction |
- OOP everywhere — traits over match blocks, types carry their own behavior
- No renderer deps in shared crates —
fsn-types,fsn-erroretc. have zero UI dependencies - Feature-gated optional functionality — use
#[cfg(feature = "...")]for heavy deps
MIT — see LICENSE