Atomic Data is a modular specification for sharing, modifying and modeling graph data. It combines the ease of use of JSON, the connectivity of RDF (linked data) and the reliability of type-safety.
Atomic Data uses links to connect pieces of data, and therefore makes it easier to connect datasets to each other - even when these datasets exist on separate machines.
Atomic Data has been designed with the following goals in mind:
- Give people more control over their data
- Make linked data easier to use
- Make it easier for developers to build highly interoperable apps
- Make standardization easier and cheaper
Atomic Data is Linked Data, as it is a strict subset of RDF.
It is type-safe (you know if something is a string
, number
, date
, URL
, etc.) and extensible through Atomic Schema, which means that you can re-use or define your own Classes, Properties and Datatypes.
The default serialization format for Atomic Data is JSON-AD, which is simply JSON where each key is a URL of an Atomic Property.
These Properties are responsible for setting the datatype
(to ensure type-safety) and setting shortnames
(which help to keep names short, for example in JSON serialization) and descriptions
(which provide semantic explanations of what a property should be used for).
Atomic Data has specifications for authentication, authorization, querying / filtering / pagination, event sourcing and versioning, file management, websockets, API endpoints and more.
Read more on docs.atomicdata.dev.
- AtomicServer: powerful database + all-in-one workspace (powers atomicdata.dev, run with
docker run -p 80:80 -p 443:443 -v atomic-storage:/atomic-storage joepmeneer/atomic-server
) - Browser GUI app atomic-data-browser (bundled with atomic-server) features group chat, tables, documents and more. (demo on atomicdata.dev)
- Typescript library: @tomic/lib
- React library: @tomic/react. Start with the react template on codesandbox
- Svelte library: @tomic/svelte + Sveltekit-Demo repo
- Command line tool: atomic-cli (
cargo install atomic-cli
) - Rust library: atomic-lib
- RayCast plugin: atomic-raycast (quickly search in your atomic-server)
- Atomic-Argu: Atomic-Server as Headless CMS + SvelteKit (based on
atomic-sveltekit-demo
) - Atomic Data Model Builder built with @tomic/svelte
Make sure to join our Discord if you'd like to discuss Atomic Data with others.
Keep in mind that none of the Atomic Data project has reached a v1, which means that breaking changes can happen. Check out the status + roadmap in the docs. Maintained and developed by Ontola.io