18 releases (breaking)
|0.22.3||Feb 20, 2021|
|0.21.0||Jan 24, 2021|
|0.18.0||Dec 26, 2020|
|0.17.0||Nov 22, 2020|
103 downloads per month
Status: Alpha. Not ready for production time. Prone to changes and corrupt databases when upgrading. Changelog
The easiest way to share Atomic Data on the web. Demo on atomicdata.dev
- No runtime dependencies, fast, runs on all platforms
- Embedded HTTP / HTTPS / HTTP2.0 server
- Serialization to HTML, JSON, Linked Data (RDF/XML, N-Triples / Turtle / JSON-LD) and AD3
Powered by Rust, atomic-lib, actix-web, Sled and more.
- You want to make (high-value) datasets as easily accessible as possible
- You can afford to create or find an Atomic Schema for your dataset (use
atomic-cli new classfor this). Example classes here.
- You want to use and share linked data, but don't want to deal with most of the complexities of RDF, SPARQL, Triple Stores, Named Graphs and Blank Nodes.
- You like living on the edge (this application is not production ready)
dockerfile is located in the project root, above this
docker run -p 80:80 -p 443:443 -v atomic-storage:/atomic-storage joepmeneer/atomic-server
- Take note of the Agent Subject and Private key, you should use these in the
atomic-cliand atomic-data-browser clients for authorization.
- If you want to update, run
docker pull joepmeneer/atomic-serverand docker should fetch the latest version.
Install Cargo to build from source.
# Clone this repoo git clone email@example.com:joepio/atomic.git cd atomic/server # Optional, but recommended: Create a new .env using the template. cp default.env .env # Run the server. It creates a store in ~/.config/atomic/db by default cargo run # Or tun the extra-cool desktop version with a presence in your app tray cargo run --features desktop # Visit http://localhost
You can also install with
cargo install atomic-server, but this binary will also require:
Check out ./example_requests.http for various HTTP requests to the server.
If you want to run Atomic Server on your own VPS + domain, make sure to correctly set the
default.env for a template and explanation of variables.
atomic-cli is a useful terminal tool for interacting with
It makes it easy to query and edit Atomic Data from the command line.
Check it out.
You can fetch individual items by sending a GET request to their URL.
# Fetch as AD3 triples curl -i -H "Accept: application/ad3-ndjson" https://atomicdata.dev/properties/shortname # Fetch as JSON-LD curl -i -H "Accept: application/ld+json" https://atomicdata.dev/properties/shortname # Fetch as JSON curl -i -H "Accept: application/json" https://atomicdata.dev/properties/shortname # Fetch as Turtle / N3 curl -i -H "Accept: text/turtle" https://atomicdata.dev/properties/shortname
# Fetch as AD3 triples curl -i -H "Accept: application/ad3-ndjson" "https://atomicdata.dev/tpf?subject=&property=&value=description"
You'll probably want to make your Atomic Data available through HTTPS.
You can use the embedded HTTPS / TLS setup powered by LetsEncrypt, acme_lib and rustls.
To setup HTTPS, we'll need to set some environment variables.
.env and set:
Run the server
Make sure the server is accessible at
ATOMIC_DOMAIN at port 80, because Let's Encrypt will send an HTTP request to this server's
/.well-known directory to check the keys.
It will now initialize the certificate.
Read the logs, watch for errors.
HTTPS certificates are automatically renewed when the server is restarted, and the certs are 4 weeks or older.
# This also makes sure that cli and server work, plus it test the db feature cargo test --all
# Install drill cargo install drill drill -b benchmark.yml --stats