Skip to content

Commit

Permalink
Improve tooling docs
Browse files Browse the repository at this point in the history
  • Loading branch information
joepio committed Mar 7, 2024
1 parent b4a7a2b commit c65fcb8
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 89 deletions.
4 changes: 3 additions & 1 deletion docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@
* [API](atomicserver/API.md)
* [Creating a JSON-AD file](create-json-ad.md)
* [FAQ & troubleshooting](atomicserver/faq.md)
* [Software and libraries](tooling.md)
* [Client libraries](tooling.md)
* [JS / TS](js.md)
* [JS CLI](js-cli.md)
* [React](usecases/react.md)
* [Svelte](svelte.md)
* [Rust](rust-lib.md)

# Specification (core)

Expand Down
31 changes: 31 additions & 0 deletions docs/src/rust-cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{{#title atomic-cli: Rust Client CLI for Atomic Data}}
# atomic-cli: Rust Client CLI for Atomic Data

An open source terminal tool for generating / querying Atomic Data from the command line.
Install with `cargo install atomic-cli`.

```
atomic-cli --help
Create, share, fetch and model Atomic Data!
Usage: atomic-cli [COMMAND]
Commands:
new Create a Resource
get Get a Resource or Value by using Atomic Paths.
tpf Finds Atoms using Triple Pattern Fragments.
set Update a single Atom. Creates both the Resource if they don't exist. Overwrites existing.
remove Remove a single Atom from a Resource.
edit Edit a single Atom from a Resource using your text editor.
destroy Permanently removes a Resource.
list List all bookmarks
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
Visit https://atomicdata.dev for more info
```

[Repository](https://github.com/atomicdata-dev/atomic-server/tree/develop/cli)
15 changes: 15 additions & 0 deletions docs/src/rust-lib.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{#title atomic-lib: Rust library for Atomic Data}}
# atomic-lib: Rust library for Atomic Data

Library that powers `atomic-server` and `atomic-cli`. Features:

- An in-memory store
- Parsing (JSON-AD) / Serialization (JSON-AD, JSON-LD, TTL, N-Triples)
- Commit validation and processing
- Constructing Collections
- Path traversal
- Basic validation

[docs.rs](https://docs.rs/atomic_lib/0.37.0/atomic_lib/)

[repository + issue tracker](https://github.com/atomicdata-dev/atomic-server).
93 changes: 5 additions & 88 deletions docs/src/tooling.md
Original file line number Diff line number Diff line change
@@ -1,98 +1,15 @@
{{#title Software and libraries for Atomic Data}}
# Software and libraries for Atomic Data

Although Atomic Data is a specification, it also has reference implementations:

Open source (MIT licenced) software for Atomic Data:

- **Server + Database**: [atomic-server](https://github.com/atomicdata-dev/atomic-server)
- **CLI**: [atomic-cli](https://github.com/atomicdata-dev/atomic-server)

Libraries (MIT licenced) to build apps with:
Libraries and clients (all MIT licenced) that work great with [atomic-server](atomic-server.md):

- Typescript / javascript library: [@tomic/lib](js.md)
- React library: [@tomic/react](usecases/react.md)
- Type CLI (npm): [@tomic/cli](js-cli.md) for generating TS types from ontologies
- Svelte library: [@tomic/svelte](svelte.md)
- Rust library: [atomic-lib (crates.io)](https://crates.io/crates/atomic-lib)

## Applications

### `atomic-server`

Server for hosting Atomic Data. Uses `atomic-lib`, `@tomic/lib` and `@tomic/react`.


- Responds to requests for created Atomic Resources, makes atomic data available at their URL.
- Embedded database
- Authorization, authentication, versioning, collections, pagination
- Browser-friendly HTML presentation, JSON serialization, RDF serialization.
- View & edit atomic data, using dynamic forms
- Collections with pagination and sorting
- Client-side full-text search

One liner: `$ docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server`

[demo](https://atomicdata.dev/)

[repository + issue tracker](https://github.com/atomicdata-dev/atomic-data-browser).

### `atomic-cli`

A tool for generating / querying Atomic Data from the command line. Install with `cargo install atomic-cli`.

```
atomic 0.20.0
Joep Meindertsma <[email protected]>
Create, share, fetch and model linked atomic data!
USAGE:
atomic-cli [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
destroy Permanently removes a Resource. Uses Commits.
edit Edit a single Atom from a Resource using your text editor. Uses Commits.
get Traverses a Path and prints the resulting Resource or Value.
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. Uses Commits.
set Update an Atom's value. Uses Commits.
tpf Finds Atoms using Triple Pattern Fragments.
Visit https://github.com/atomicdata-dev/atomic-data-browser for more info
```

[repository + issue tracker](https://github.com/atomicdata-dev/atomic-data-browser).


### Raycast extension: Full-text search from your desktop

[Install here](https://www.raycast.com/atomicdata-dev/atomic-data-browser).

## Libraries

### `@tomic/lib` and `@tomic/react`

Javascript / typescript libraries, especially useful for creating front-end apps.

Fork the [atomic-data-react-template](https://codesandbox.io/s/atomic-data-react-template-4y9qu?file=/src/MyResource.tsx) on codesandbox to get started directly!

### `atomic-lib` (Rust)

Library that powers `atomic-server` and `atomic-cli`. Features:

- An in-memory store
- Parsing (JSON-AD) / Serialization (JSON-AD, JSON-LD, TTL, N-Triples)
- Commit validation and processing
- Constructing Collections
- Path traversal
- Basic validation

[repository + issue tracker](https://github.com/atomicdata-dev/atomic-server).
- Client CLI (rust): [atomic-cli](rust-cli.md) for fetching & editing data
- Rust library: [atomic-lib](rust-lib.md) powers `atomic-server` and `atomic-cli`, and can be used in other Rust projects ([docs.rs](https://docs.rs/atomic_lib/0.37.0/atomic_lib/))
- [Raycast Extension](https://www.raycast.com/atomicdata-dev/atomic-data-browser): full-text search

## Want to add to this list? Some ideas for tooling

Expand Down

0 comments on commit c65fcb8

Please sign in to comment.