[package]
edition = "2024"
rust-version = "1.98.0"
name = "laser-sdk"
version = "0.8.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "LaserData SDK over Apache Iggy: typed streaming, operational and lakehouse query, materialization destinations, key-value state, copy-on-write forks, and an optional agent runtime with the Agent Data Exchange Protocol (AGDX)."
readme = "README.md"
keywords = [
"iggy",
"agents",
"streaming",
"provenance",
"messaging",
]
categories = [
"asynchronous",
"network-programming",
]
license = "Apache-2.0"
repository = "https://github.com/laserdata/laser-sdk"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
[features]
a2a-bridge = [
"agent",
"dep:serde_json",
]
a2a-http = [
"a2a-bridge",
"dep:axum",
"dep:strum",
]
agent = [
"dep:async-trait",
"dep:blake3",
"dep:dashmap",
"dep:futures",
"dep:iggy_common",
"dep:serde_json",
"dep:sha2",
"dep:strum",
"dep:tokio",
"dep:tracing",
"dep:trait-variant",
"provenance",
"streaming",
]
agui = [
"agent",
"dep:serde_json",
]
default = [
"provenance",
"streaming",
]
destinations = ["streaming"]
filters = [
"laser-wire/filter-eval",
"streaming",
]
fork = ["streaming"]
graph = ["streaming"]
integration = []
kv = [
"dep:async-trait",
"dep:trait-variant",
"streaming",
]
managed = [
"destinations",
"filters",
"fork",
"graph",
"kv",
"projections",
"query",
"rbac",
"watch",
]
mcp-bridge = [
"agent",
"dep:serde_json",
]
mcp-http = [
"mcp-bridge",
"dep:axum",
"dep:strum",
]
projections = ["streaming"]
provenance = []
query = [
"laser-wire/bson",
"streaming",
]
rbac = ["streaming"]
schema-codecs = [
"dep:apache-avro",
"dep:jsonschema",
"dep:prost-reflect",
"projections",
]
sign = [
"agent",
"dep:ed25519-dalek",
"dep:sha2",
]
streaming = [
"dep:dashmap",
"dep:futures",
"dep:iggy_binary_protocol",
"dep:iggy_common",
"dep:secrecy",
"dep:serde_json",
"dep:tokio",
"dep:tracing",
"laser-wire/codecs",
]
watch = ["streaming"]
[lib]
name = "laser_sdk"
path = "src/lib.rs"
[[test]]
name = "alloc"
path = "tests/alloc.rs"
[[test]]
name = "integration"
path = "tests/integration/main.rs"
required-features = ["integration"]
[[test]]
name = "signature_interop"
path = "tests/signature_interop.rs"
[dependencies.apache-avro]
version = "0.22.0"
optional = true
[dependencies.async-trait]
version = "0.1.92"
optional = true
[dependencies.axum]
version = "0.8.9"
optional = true
[dependencies.blake3]
version = "1.8.7"
optional = true
[dependencies.bon]
version = "3.10.2"
[dependencies.bytes]
version = "1.12.1"
[dependencies.dashmap]
version = "6.2.1"
optional = true
[dependencies.ed25519-dalek]
version = "3.0.0"
optional = true
[dependencies.futures]
version = "0.3.34"
optional = true
[dependencies.iggy]
version = "0.11.0"
[dependencies.iggy_binary_protocol]
version = "0.11.0"
optional = true
[dependencies.iggy_common]
version = "0.11.0"
optional = true
[dependencies.jsonschema]
version = "0.58.5"
optional = true
default-features = false
[dependencies.laser-wire]
version = "0.8.2"
features = [
"builders",
"cbor",
]
[dependencies.prost-reflect]
version = "0.16.5"
features = ["serde"]
optional = true
[dependencies.secrecy]
version = "0.10.3"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.sha2]
version = "0.11.0"
optional = true
[dependencies.strum]
version = "0.28.0"
features = ["derive"]
optional = true
[dependencies.thiserror]
version = "2.0.21"
[dependencies.tokio]
version = "1.53.2"
features = [
"fs",
"macros",
"process",
"rt",
"rt-multi-thread",
"sync",
"time",
]
optional = true
[dependencies.tracing]
version = "0.1.44"
optional = true
[dependencies.trait-variant]
version = "0.1.3"
optional = true
[dependencies.ulid]
version = "3.0.0"
[dev-dependencies.apache-avro]
version = "0.22.0"
[dev-dependencies.async-trait]
version = "0.1.92"
[dev-dependencies.axum]
version = "0.8.9"
[dev-dependencies.iggy]
version = "0.11.0"
[dev-dependencies.laser-wire]
version = "0.8.2"
features = [
"builders",
"cbor",
"fixtures",
]
[dev-dependencies.libc]
version = "0.2"
[dev-dependencies.prost]
version = "0.14.4"
[dev-dependencies.protox]
version = "0.9.1"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.serial_test]
version = "4.0.1"
[dev-dependencies.tempfile]
version = "3.27.0"
[dev-dependencies.tokio]
version = "1.53.2"
features = [
"fs",
"macros",
"process",
"rt",
"rt-multi-thread",
"sync",
"time",
"io-util",
"net",
]