Skip to content

πŸ¦€ ASIMOV Software Development Kit (SDK) for Rust: A polyglot development platform for trustworthy neurosymbolic machine intelligence.

License

Notifications You must be signed in to change notification settings

asimov-platform/asimov.rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

363 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

ASIMOV Software Development Kit (SDK) for Rust

License Compatibility Package Documentation

ASIMOV is a polyglot development platform for trustworthy neurosymbolic machine intelligence.


[Features] | [Prerequisites] | [Installation] | [Examples] | [Reference] | [Development]

✨ Features

  • Defines flow-based program patterns for refining data into knowledge.
  • Implements a module system enabling an ecosystem of modules.
  • Enables dataflow systems through reusable components called blocks.
  • Compatible with the inventory of dataflow blocks provided by Flows.rs.
  • Built on the dataflow primitives provided by the Async-Flow crate.
  • 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 1.93+ (2024 edition)

⬇️ Installation

Installation via Cargo

cargo add asimov-sdk --rename asimov

Installation in Cargo.toml

[dependencies]
asimov = { package = "asimov-sdk", version = "25" }

Alternatively, enable only specific features:

[dependencies]
asimov = { package = "asimov-sdk", version = "25", default-features = false, features = ["tracing"] }

πŸ‘‰ Examples

Importing the SDK

use asimov::{config, directory, env, flow, id, kb, patterns, registry, runner, snapshot};

Listing Installed Modules

// cargo run --package asimov-directory --example list_modules

use asimov::directory::{ModuleNameIterator, fs::StateDirectory};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let modules = StateDirectory::home()?.modules()?;
    let mut module_names = modules.iter_installed().await?;
    while let Some(module_name) = module_names.next().await {
        println!("{}", module_name);
    }
    Ok(())
}

πŸ“š Reference

docs.rs/asimov-sdk

Packages

Package Crate Docs
asimov-account Package Documentation
asimov-agent Package Documentation
asimov-cache Package Documentation
asimov-cloud Package Documentation
asimov-config Package Documentation
asimov-construct Package Documentation
asimov-core Package Documentation
asimov-credit Package Documentation
asimov-dataset Package Documentation
asimov-directory Package Documentation
asimov-env Package Documentation
asimov-flow Package Documentation
asimov-graph Package Documentation
asimov-huggingface Package Documentation
asimov-id Package Documentation
asimov-installer Package Documentation
asimov-kb Package Documentation
asimov-ledger Package Documentation
asimov-module Package Documentation
asimov-nexus Package Documentation
asimov-ontology Package Documentation
asimov-patterns Package Documentation
asimov-platform Package Documentation
asimov-prompt Package Documentation
asimov-protocol Package Documentation
asimov-proxy Package Documentation
asimov-registry Package Documentation
asimov-repository Package Documentation
asimov-runner Package Documentation
asimov-runtime Package Documentation
asimov-sdk Package Documentation
asimov-server Package Documentation
asimov-snapshot Package Documentation
asimov-token Package Documentation
asimov-universe Package Documentation
asimov-vault Package Documentation

Glossary

  • Module: A collection of systems and blocks, packaged as a reusable unit.

  • 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.

πŸ‘¨β€πŸ’» Development

git clone https://github.com/asimov-platform/asimov.rs.git

Share on X Share on Reddit Share on Hacker News Share on Facebook Share on LinkedIn

About

πŸ¦€ ASIMOV Software Development Kit (SDK) for Rust: A polyglot development platform for trustworthy neurosymbolic machine intelligence.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors 6

Languages