rain-engine 0.1.0

An event-sourced Rust kernel for building durable AI agent systems
Documentation
[workspace]
members = [
    "rain-engine-blob",
    "rain-engine-channels",
    "rain-engine-cognition",
    "rain-engine-core",
    "rain-engine-ingress",
    "rain-engine-macros",
    "rain-engine-memory",
    "rain-engine-provider-gemini",
    "rain-engine-openai",
    "rain-engine-skills",
    "rain-engine-wasm",
    "rain-engine-runtime",
    "rain-engine-store-pg",
    "rain-engine-store-sqlite",
    "rain-engine-store-valkey",
    "rain-engine-client",
]
resolver = "2"

[workspace.package]
edition = "2024"
license = "MIT"
version = "0.1.0"
repository = "https://github.com/Adriftdev/rain-engine"
homepage = "https://github.com/Adriftdev/rain-engine"

[workspace.dependencies]
anyhow = "1"
async-stream = "0.3"
async-trait = "0.1"
axum = { version = "0.8", features = ["multipart"] }
base64 = "0.22"
futures-util = "0.3"
metrics = "0.24"
multer = "3"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "blocking"] }
schemars = "0.8"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "postgres"] }
syn = { version = "2", features = ["full"] }
thiserror = "2"
headless_chrome = "1.0.21"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "sync", "time", "net", "process", "io-util", "signal"] }
tokio-util = "0.7"
tower = { version = "0.5", features = ["util"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }
url = "2"
uuid = { version = "1", features = ["serde", "v4"] }
wasmtime = "39"
wat = "1"
quote = "1"
proc-macro2 = "1"
redis = { version = "0.32.7", features = ["aio", "tokio-comp"] }
typeshare = "1"

[package]
name = "rain-engine"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "An event-sourced Rust kernel for building durable AI agent systems"
repository = "https://github.com/Adriftdev/rain-engine"
homepage.workspace = true
documentation = "https://docs.rs/rain-engine"
readme = "README.md"
keywords = ["agents", "llm", "automation", "event-sourcing", "ai"]
categories = ["asynchronous", "development-tools"]

[features]
default = ["memory", "blob"]

memory = ["dep:rain-engine-memory"]
blob = ["dep:rain-engine-blob"]
cognition = ["dep:rain-engine-cognition"]
wasm = ["dep:rain-engine-wasm"]
runtime = ["dep:rain-engine-runtime", "blob"]
client = ["dep:rain-engine-client"]
channels = ["dep:rain-engine-channels", "client"]
provider-gemini = ["dep:rain-engine-provider-gemini"]
provider-openai = ["dep:rain-engine-openai"]
store-sqlite = ["dep:rain-engine-store-sqlite"]
store-pg = ["dep:rain-engine-store-pg"]
store-valkey = ["dep:rain-engine-store-valkey"]

[dependencies]
rain-engine-core = { path = "rain-engine-core", version = "0.1.0" }
rain-engine-blob = { path = "rain-engine-blob", version = "0.1.0", optional = true }
rain-engine-memory = { path = "rain-engine-memory", version = "0.1.0", optional = true }
rain-engine-cognition = { path = "rain-engine-cognition", version = "0.1.0", optional = true }
rain-engine-wasm = { path = "rain-engine-wasm", version = "0.1.0", optional = true }
rain-engine-client = { path = "rain-engine-client", version = "0.1.0", optional = true }
rain-engine-channels = { path = "rain-engine-channels", version = "0.1.0", optional = true }
rain-engine-runtime = { path = "rain-engine-runtime", version = "0.1.0", optional = true }
rain-engine-store-sqlite = { path = "rain-engine-store-sqlite", version = "0.1.0", optional = true }
rain-engine-store-pg = { path = "rain-engine-store-pg", version = "0.1.0", optional = true }
rain-engine-store-valkey = { path = "rain-engine-store-valkey", version = "0.1.0", optional = true }
rain-engine-provider-gemini = { path = "rain-engine-provider-gemini", version = "0.1.0", optional = true }
rain-engine-openai = { path = "rain-engine-openai", version = "0.1.0", optional = true }

[dev-dependencies]
tokio = { workspace = true }
serde_json = { workspace = true }
rain-engine-runtime = { path = "rain-engine-runtime", version = "0.1.0" }

[[example]]
name = "in_memory_kernel"

[[example]]
name = "sqlite_embedding"
required-features = ["runtime", "store-sqlite"]

[[example]]
name = "provider_gemini"
required-features = ["provider-gemini"]

[[example]]
name = "provider_openai"
required-features = ["provider-openai"]