openserve 2.0.2

A modern, high-performance, AI-enhanced file server built in Rust
Documentation
[package]
name = "openserve"
version = "2.0.2"
edition = "2021"
authors = ["Nik Jois <nikjois@llamasearch.ai>"]
description = "A modern, high-performance, AI-enhanced file server built in Rust"
documentation = "https://docs.rs/openserve"
homepage = "https://github.com/nikjois/openserve-rs"
repository = "https://github.com/nikjois/openserve-rs"
license = "MIT"
readme = "README.md"
keywords = ["file-server", "ai", "search", "web-server", "async"]
categories = ["web-programming::http-server", "filesystem", "text-processing", "command-line-utilities"]
exclude = [
    "tests/*",
    "benches/*",
    "docker/*",
    ".github/*",
    "*.log",
    "target/*",
    "files/*",
    "data/*",
    "index/*",
    "logs/*"
]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[[bin]]
name = "openserve"
path = "src/main.rs"

[lib]
name = "openserve"
path = "src/lib.rs"

[dependencies]
# Core async runtime and web framework
tokio = { version = "1.0", features = ["full"] }
axum = { version = "0.7", features = ["macros", "multipart", "ws"] }
tower = { version = "0.4", features = ["full"] }
tower-http = { version = "0.5", features = ["full"] }

# Serialization and configuration
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
config = "0.14"

# Error handling and utilities
anyhow = "1.0"
thiserror = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["json", "env-filter"] }
tracing-appender = "0.2"

# Authentication and security
jsonwebtoken = "9.0"
bcrypt = "0.15"
argon2 = "0.5"
uuid = { version = "1.0", features = ["v4", "serde"] }

# Database and storage
sqlx = { version = "0.7", features = ["runtime-tokio-rustls", "sqlite", "chrono", "uuid"] }
redis = { version = "0.24", features = ["tokio-comp"] }

# Search engine
tantivy = "0.22"

# AI integration
reqwest = { version = "0.11", features = ["json", "rustls-tls"] }
async-openai = { version = "0.25", optional = true }
moka = { version = "0.12.7", features = ["future"], optional = true }

# File handling and utilities
mime_guess = "2.0"
walkdir = "2.0"
tempfile = "3.0"
futures = "0.3"
regex = "1.0"
flate2 = "1.0"

# Time handling
chrono = { version = "0.4", features = ["serde"] }

# Cryptography
sha2 = "0.10"
rand = "0.8"
hex = "0.4"

# Command line interface
clap = { version = "4.5.4", features = ["derive", "env"], optional = true }

# Metrics and monitoring
prometheus = { version = "0.13", features = ["process"], optional = true }
once_cell = "1.0"

# Development dependencies
[dev-dependencies]
tokio-test = "0.4"
assert_matches = "1.5"
criterion = { version = "0.5", features = ["html_reports"] }



[features]
default = ["cli", "all-services"]
cli = ["dep:clap"]
all-services = ["ai", "auth-service", "search-service", "file-service", "http-server"]

ai = ["dep:async-openai", "dep:moka"]
auth-service = []
search-service = []
file-service = []
http-server = []
metrics = ["dep:prometheus"]
full = ["all-services", "metrics"]

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"

[profile.dev]
opt-level = 0
debug = true

[profile.test]
opt-level = 1
debug = true