# ASIMOV Software Development Kit (SDK) for Rust
[](https://unlicense.org)
[](https://blog.rust-lang.org/2025/02/20/Rust-1.85.0/)
[](https://crates.io/crates/asimov-sdk)
[](https://docs.rs/asimov-sdk)
**[ASIMOV] is a polyglot development platform for [trustworthy, neurosymbolic AI].**
<br/>
<sub>
[[Features](#-features)] |
[[Prerequisites](#%EF%B8%8F-prerequisites)] |
[[Installation](#%EF%B8%8F-installation)] |
[[Examples](#-examples)] |
[[Reference](#-reference)] |
[[Development](#%E2%80%8D-development)]
</sub>
## ✨ Features
- Defines [flow-based] [program patterns] for refining data into knowledge.
- Implements a [module system] supporting an ecosystem of [ASIMOV modules].
- Enables dataflow systems through reusable components called blocks.
- Built on the dataflow primitives provided by the [Async-Flow] crate.
- Compatible with the inventory of dataflow blocks provided by [Flows.rs].
- Supports opting out of any feature using comprehensive feature flags.
- Adheres to the Rust API Guidelines in its [naming conventions].
- Cuts red tape: 100% free and unencumbered public domain software.
## 🛠️ Prerequisites
- [Rust](https://rust-lang.org) 1.85+ (2024 edition)
## ⬇️ Installation
### Installation via Cargo
```bash
cargo add asimov-sdk --rename asimov
```
### Installation in `Cargo.toml` (with all features enabled)
```toml
[dependencies]
asimov = { package = "asimov-sdk", "version" = "25" }
```
### Installation in `Cargo.toml` (with only specific features enabled)
```toml
[dependencies]
asimov = { package = "asimov-sdk", "version" = "25", default-features = false, features = ["tracing"] }
```
## 👉 Examples
### Importing the SDK
```rust
use asimov::{config, env, flow, id, kb, patterns, registry, runner, snapshot};
```
## 📚 Reference
[docs.rs/asimov-sdk](https://docs.rs/asimov-sdk)
### Packages
| [asimov-account](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-account) | [](https://crates.io/crates/asimov-account) | [](https://docs.rs/asimov-account) |
| [asimov-agent](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-agent) | [](https://crates.io/crates/asimov-agent) | [](https://docs.rs/asimov-agent) |
| [asimov-cache](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-cache) | [](https://crates.io/crates/asimov-cache) | [](https://docs.rs/asimov-cache) |
| [asimov-cloud](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-cloud) | [](https://crates.io/crates/asimov-cloud) | [](https://docs.rs/asimov-cloud) |
| [asimov-config](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-config) | [](https://crates.io/crates/asimov-config) | [](https://docs.rs/asimov-config) |
| [asimov-construct](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-construct) | [](https://crates.io/crates/asimov-construct) | [](https://docs.rs/asimov-construct) |
| [asimov-core](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-core) | [](https://crates.io/crates/asimov-core) | [](https://docs.rs/asimov-core) |
| [asimov-credit](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-credit) | [](https://crates.io/crates/asimov-credit) | [](https://docs.rs/asimov-credit) |
| [asimov-dataset](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-dataset) | [](https://crates.io/crates/asimov-dataset) | [](https://docs.rs/asimov-dataset) |
| [asimov-directory](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-directory) | [](https://crates.io/crates/asimov-directory) | [](https://docs.rs/asimov-directory) |
| [asimov-env](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-env) | [](https://crates.io/crates/asimov-env) | [](https://docs.rs/asimov-env) |
| [asimov-flow](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-flow) | [](https://crates.io/crates/asimov-flow) | [](https://docs.rs/asimov-flow) |
| [asimov-graph](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-graph) | [](https://crates.io/crates/asimov-graph) | [](https://docs.rs/asimov-graph) |
| [asimov-huggingface](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-huggingface) | [](https://crates.io/crates/asimov-huggingface) | [](https://docs.rs/asimov-huggingface) |
| [asimov-id](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-id) | [](https://crates.io/crates/asimov-id) | [](https://docs.rs/asimov-id) |
| [asimov-installer](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-installer) | [](https://crates.io/crates/asimov-installer) | [](https://docs.rs/asimov-installer) |
| [asimov-kb](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-kb) | [](https://crates.io/crates/asimov-kb) | [](https://docs.rs/asimov-kb) |
| [asimov-ledger](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-ledger) | [](https://crates.io/crates/asimov-ledger) | [](https://docs.rs/asimov-ledger) |
| [asimov-module](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-module) | [](https://crates.io/crates/asimov-module) | [](https://docs.rs/asimov-module) |
| [asimov-nexus](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-nexus) | [](https://crates.io/crates/asimov-nexus) | [](https://docs.rs/asimov-nexus) |
| [asimov-ontology](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-ontology) | [](https://crates.io/crates/asimov-ontology) | [](https://docs.rs/asimov-ontology) |
| [asimov-patterns](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-patterns) | [](https://crates.io/crates/asimov-patterns) | [](https://docs.rs/asimov-patterns) |
| [asimov-platform](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-platform) | [](https://crates.io/crates/asimov-platform) | [](https://docs.rs/asimov-platform) |
| [asimov-prompt](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-prompt) | [](https://crates.io/crates/asimov-prompt) | [](https://docs.rs/asimov-prompt) |
| [asimov-protocol](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-protocol) | [](https://crates.io/crates/asimov-protocol) | [](https://docs.rs/asimov-protocol) |
| [asimov-proxy](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-proxy) | [](https://crates.io/crates/asimov-proxy) | [](https://docs.rs/asimov-proxy) |
| [asimov-registry](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-registry) | [](https://crates.io/crates/asimov-registry) | [](https://docs.rs/asimov-registry) |
| [asimov-repository](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-repository) | [](https://crates.io/crates/asimov-repository) | [](https://docs.rs/asimov-repository) |
| [asimov-runner](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-runner) | [](https://crates.io/crates/asimov-runner) | [](https://docs.rs/asimov-runner) |
| [asimov-runtime](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-runtime) | [](https://crates.io/crates/asimov-runtime) | [](https://docs.rs/asimov-runtime) |
| [asimov-sdk](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-sdk) | [](https://crates.io/crates/asimov-sdk) | [](https://docs.rs/asimov-sdk) |
| [asimov-server](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-server) | [](https://crates.io/crates/asimov-server) | [](https://docs.rs/asimov-server) |
| [asimov-snapshot](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-snapshot) | [](https://crates.io/crates/asimov-snapshot) | [](https://docs.rs/asimov-snapshot) |
| [asimov-token](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-token) | [](https://crates.io/crates/asimov-token) | [](https://docs.rs/asimov-token) |
| [asimov-universe](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-universe) | [](https://crates.io/crates/asimov-universe) | [](https://docs.rs/asimov-universe) |
| [asimov-vault](https://github.com/asimov-platform/asimov.rs/tree/master/lib/asimov-vault) | [](https://crates.io/crates/asimov-vault) | [](https://docs.rs/asimov-vault) |
## 👨💻 Development
```bash
git clone https://github.com/asimov-platform/asimov.rs.git
```
### Glossary
- **System**: A collection of blocks that are connected together.
Systems are the top-level entities in dataflow programs.
- **Block**: An encapsulated system component that processes messages.
Blocks are the autonomous units of computation in a system.
- **Port**: A named connection point on a block that sends or receives
messages. Ports are the only interfaces through which blocks communicate
with each other.
- **Message**: A unit of data that flows between blocks in a system, from port
to port. Any Rust type that implements the `Send + Sync + 'static` traits can
be used as a message.
---
[](https://x.com/intent/post?url=https://github.com/asimov-platform/asimov.rs&text=ASIMOV%20Software%20Development%20Kit%20%28SDK%29%20for%20Rust)
[](https://reddit.com/submit?url=https://github.com/asimov-platform/asimov.rs&title=ASIMOV%20Software%20Development%20Kit%20%28SDK%29%20for%20Rust)
[](https://news.ycombinator.com/submitlink?u=https://github.com/asimov-platform/asimov.rs&t=ASIMOV%20Software%20Development%20Kit%20%28SDK%29%20for%20Rust)
[](https://www.facebook.com/sharer/sharer.php?u=https://github.com/asimov-platform/asimov.rs)
[](https://www.linkedin.com/sharing/share-offsite/?url=https://github.com/asimov-platform/asimov.rs)
[ASIMOV]: https://asimov.sh
[ASIMOV modules]: https://github.com/asimov-modules
[Async-Flow]: https://github.com/artob/async-flow
[Flows.rs]: https://github.com/artob/flows.rs
[flow-based]: https://github.com/artob/awesome-fbp
[naming conventions]: https://rust-lang.github.io/api-guidelines/naming.html
[module system]: https://asimov-specs.github.io/
[program patterns]: https://asimov-specs.github.io/program-patterns/
[trustworthy, neurosymbolic AI]: https://asimov.blog/introducing-asimov/