47 releases (26 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.1 Nov 23, 2020

#182 in Database interfaces

MIT license

455KB
10K SLoC

atomic-cli

crates.io Discord chat MIT licensed github

Status: Beta. Breaking changes are expected until 1.0.

A command-line application to create, read and interact with Atomic Data.

Designed and tested to work with atomic-server.

atomic-cli 0.23.2
Joep Meindertsma <joep@ontola.io>
Create, share, fetch and model Atomic Data!

USAGE:
    atomic-cli [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    destroy    Permanently removes a Resource.
    edit       Edit a single Atom from a Resource using your text editor.
    get        Get a Resource or Value by using Atomic Paths.
    help       Prints this message or the help of the given subcommand(s)
    list       List all bookmarks
    new        Create a Resource
    remove     Remove a single Atom from a Resource.
    set        Update a single Atom. Creates both the Resource if they don't exist. Overwrites existing.

Visit https://atomicdata.dev for more info

Installation

You can install `atomic-cli: in multiple ways:

Using Cargo

cargo install atomic-cli

Build from source

git clone git@github.com:atomicdata-dev/atomic-server.git
cd atomic/cli
# Install atomic to path
cargo install --path ./

Usage

Run atomic-cli command --help for mor information about specific commands.

The write commands (set, remove, edit, destroy) require some authentication config, which needs to match with the target atomic-server. It will read the ~/.config/atomic/config.toml file, and create one using some prompts if it is not yet present.

Features

  • A list command for showing local bookmarks (mappings)
  • A get command for finding resources and parts of data using Atomic Paths with various serialization options (JSON, JSON-AD, JSON-LD, Turtle, N-Triples, Pretty). Also supports path traversal.
  • set, remove, destroy and edit commands that send commits.
  • A new command for instantiating Atomic Classes

Config

Atomic creates a ~/.config/atomic folder, which contains a mapping.amp and a db. This folder is also used by atomic-server.

Mapping

The Mapping refers to your user specific set of shortname-URL combinations. This Mapping lives as a simple text file in ./user_mappping.amp.

person=https://atomicdata.dev/classes/Person

Dependencies

~18–30MB
~560K SLoC