114 lines
2.7 KiB
TOML
Raw Permalink Normal View History

[package]
name = "stratum-embeddings"
version = "0.1.0"
edition.workspace = true
description = "Unified embedding providers with caching, batch processing, and vector storage"
license.workspace = true
[dependencies]
# Async runtime
tokio = { workspace = true }
async-trait = { workspace = true }
futures = { workspace = true }
# HTTP client (for cloud providers)
reqwest = { workspace = true, optional = true }
# Serialization
serde = { workspace = true }
serde_json = { workspace = true }
humantime-serde = { workspace = true }
# Caching
moka = { workspace = true }
# Persistent cache (optional)
sled = { workspace = true, optional = true }
# Local embeddings
fastembed = { workspace = true, optional = true }
# Vector storage backends
lancedb = { workspace = true, optional = true }
surrealdb = { workspace = true, optional = true }
arrow = { workspace = true, optional = true }
# Error handling
thiserror = { workspace = true }
# Logging
tracing = { workspace = true }
# Metrics
prometheus = { workspace = true, optional = true }
# Utilities
xxhash-rust = { workspace = true }
[features]
default = ["fastembed-provider", "memory-cache"]
# Providers
fastembed-provider = ["fastembed"]
openai-provider = ["reqwest"]
ollama-provider = ["reqwest"]
cohere-provider = ["reqwest"]
voyage-provider = ["reqwest"]
huggingface-provider = ["reqwest"]
all-providers = [
"fastembed-provider",
"openai-provider",
"ollama-provider",
"cohere-provider",
"voyage-provider",
"huggingface-provider",
]
# Cache backends
memory-cache = []
persistent-cache = ["sled"]
all-cache = ["memory-cache", "persistent-cache"]
# Vector storage backends
lancedb-store = ["lancedb", "arrow"]
surrealdb-store = ["surrealdb"]
all-stores = ["lancedb-store", "surrealdb-store"]
# Observability
metrics = ["prometheus"]
# Project-specific presets
kogral = ["fastembed-provider", "memory-cache", "surrealdb-store"]
provisioning = ["openai-provider", "memory-cache", "lancedb-store"]
vapora = ["all-providers", "memory-cache", "lancedb-store"] # Includes huggingface-provider
# Full feature set
full = ["all-providers", "all-cache", "all-stores", "metrics"]
[dev-dependencies]
tokio-test = { workspace = true }
approx = { workspace = true }
tempfile = { workspace = true }
tracing-subscriber = { workspace = true }
# Example-specific feature requirements
[[example]]
name = "basic_usage"
required-features = ["fastembed-provider"]
[[example]]
name = "fallback_demo"
required-features = ["ollama-provider", "fastembed-provider"]
[[example]]
name = "lancedb_usage"
required-features = ["lancedb-store", "fastembed-provider"]
[[example]]
name = "surrealdb_usage"
required-features = ["surrealdb-store", "fastembed-provider"]
[[example]]
name = "huggingface_usage"
required-features = ["huggingface-provider"]