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

Download history 4/week @ 2024-11-13 9/week @ 2024-11-20 255/week @ 2024-11-27 217/week @ 2024-12-04 150/week @ 2024-12-11 163/week @ 2024-12-18 226/week @ 2024-12-25 52/week @ 2025-01-01 21/week @ 2025-01-08 1/week @ 2025-02-05 260/week @ 2025-02-19 35/week @ 2025-02-26

296 downloads per month

MIT/Apache

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