67 releases (13 breaking)
new 0.17.1 | Mar 9, 2025 |
---|---|
0.16.8 | Mar 8, 2025 |
0.16.4 | Dec 31, 2024 |
0.16.0 | Nov 27, 2024 |
0.5.0 | Jul 20, 2023 |
#49 in Magic Beans
296 downloads per month
505KB
12K
SLoC
Software development kit for a distributed, local-first, encrypted database that can be used to build password managers, cryptocurrency wallets or other applications that require storing secrets securely.
See the Save Our Secrets website for the app, more documentation and information.
Backends
There are two storage backends, a file system backend which uses append-only files for event logs and a newer SQLite database backend. The sos-backend crate is an abstraction for multiple storage backends and should be used to create a backend target.
The file system backend is now considered legacy and may be removed in a future version.
Crates
A higher-level account management API is described in sos_account::Account which is implemented by sos_account::LocalAccount. For a network aware account with sync capability use sos_net::NetworkAccount.
For lower-level access use the types in the sos-vault crate.
This crate exports a prelude of common types for low-level access but we encourage using the appropriate crate directly.
Crate | Description |
---|---|
sos-account | Local account management |
sos-archive | ZIP archive support |
sos-artifact | Release artifact types |
sos-audit | Audit log types and traits |
sos-backend | Abstraction for multiple storage backends |
sos-cli-helpers | Helper functions for the CLI tools |
sos-core | Core types and traits; cryptography functions, commit trees and event definitions. |
sos-database | SQLite database backend |
sos-database-upgrader | Upgrade filesystem backend to database backend |
sos-extension-service | Browser extension helper service |
sos-external-files | Helper functions for managing external encrypted file blobs |
sos-filesystem | Legacy filesystem backend |
sos-integrity | Vault, event log and external file blob integrity checks |
sos-ipc | IPC service and executable for the companion browser extension |
sos-login | Login and identity folder for authentication |
sos-logs | Standard logging facility |
sos-migrate | Import from and export to other apps (unencrypted data) |
sos-net | Network-aware accounts with sync capability |
sos-password | Strong password generation |
sos-platform-authenticator | Native platform authenticator and keyring integration |
sos-preferences | Types and traits for global and account user preferences |
sos-protocol | Network client and protocol |
sos-reducers | Reduce event logs into compact representations |
sos-remote-sync | Remote sync and auto merge implementations |
sos-search | In-memory search index |
sos-security-report | Generate security reports for accounts |
sos-server | Self-hosted server library and CLI |
sos-signer | Cryptographic signatures |
sos | Client command line interface and shell REPL |
sos-client-storage | Storage implementation for clients |
sos-server-storage | Storage implementation for servers |
sos-sync | Sync protocol types and traits |
sos-system-messages | Persistent, application system messages |
sos-vault | Secure secret storage |
sos-vfs | Virtual File System for WASM support |
API
The public API is not considered stable and may be changed at any time prior to a 1.0.0
release.
MSRV
We track the latest stable Rust toolchain (currently 1.85.0
) so we can use new features as they are stabilized the code may compile on older versions.
License
The client code is either MIT or Apache-2.0, you choose; the server is released under the AGPL-3.0 license.
Dependencies
~74MB
~1M SLoC