63 releases (32 breaking)
0.40.0 | Oct 7, 2024 |
---|---|
0.38.0 | Jun 8, 2024 |
0.37.0 | Feb 1, 2024 |
0.36.1 | Dec 6, 2023 |
0.17.0 | Nov 22, 2020 |
#192 in Database interfaces
2,167 downloads per month
Used in 10 crates
(3 directly)
420KB
9K
SLoC
atomic-lib
Status: Beta. Breaking changes are expected until 1.0.
Rust library for using Atomic Data.
Powers atomic-cli
and atomic-server
.
Check out the docs on docs.rs.
For code examples, see examples/basic.rs
and the many tests in the code.
Features
- Two stores for Atomic Data:
- In-memory store for getting / setting data (
Store
). Useful for clients. - On disk database (
Db
, uses Sled), which powersatomic-server
.
- In-memory store for getting / setting data (
- JSON-AD Parser & Serializer
- Serialization of atomic data to JSON-AD, plain JSON, RDF, Turtle, N-Triples and JSON-LD.
- Path traversal
- Convert Atomic Data to Rust native types
- Resolve / parse mappings (bookmarks)
- Validate Atomic Schema
- Atomic Commits (transactions / delta's / changes / updates / versioning / history)
- Plugin system (although not very mature)
- Collections (pagination, sorting, filtering)
- Querying (using triple pattern fragments)
- Invites
- Hierarchy
- Saving Atomic Config files.
Optional features
Some features of this library are optional, to minimize bundle size and compile times.
db
The db features adds persistence, which means that you can store stuff on an HDD / SSD. It uses [Sled], a performant, embedded key-value store.
rdf
If you need RDF serialization options (Turtle / N-Triples), use this feature.
config
Filesystem management of Atomic Config files.
Used in atomic-cli
and atomic-server
.
Dependencies
~11–23MB
~428K SLoC