geode-client 0.1.1-alpha.20

Rust client library for Geode graph database with full GQL support
Documentation
[package]
name = "geode-client"
version = "0.1.1-alpha.20"
edition = "2024"
rust-version = "1.85"
authors = ["Geode Contributors <info@codepros.org>"]
description = "Rust client library for Geode graph database with full GQL support"
license = "Apache-2.0"
repository = "https://gitlab.com/devnw/codepros/geode/geode-client-rust"
homepage = "https://geodedb.com"
documentation = "https://gitlab.com/devnw/codepros/geode/geode-client-rust"
readme = "README.md"
keywords = ["database", "graph", "gql", "geode", "quic"]
categories = ["database", "asynchronous"]

[dependencies]
# Async runtime
tokio = { version = "1.35", features = ["full"] }

# QUIC support - using quinn (Pure Rust QUIC with rustls)
quinn = "0.11"
rustls = { version = "0.23", features = ["aws-lc-rs"] }
rustls-pemfile = "2.0"
rustls-native-certs = "0.8"  # Load system root certificates for TLS verification

# Security
secrecy = "0.10"  # Zeroize sensitive data on drop

# gRPC and Protobuf support
tonic = { version = "0.12", features = ["tls", "channel"] }
prost = "0.13"
http = "1.0"

# Serialization (used internally for Value types)
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# Error handling
thiserror = "1.0"
anyhow = "1.0"

# Utilities
bytes = "1.5"
futures = "0.3"

# Decimal support
rust_decimal = "1.33"

# Datetime support
chrono = { version = "0.4", features = ["serde"] }

# URL parsing
url = "2.5"
urlencoding = "2.1"

# Hex encoding/decoding
hex = "0.4"

# Logging
log = "0.4"

[[example]]
name = "basic"
path = "examples/basic.rs"

[[example]]
name = "advanced"
path = "examples/advanced.rs"

[[example]]
name = "test_quinn"
path = "examples/test_quinn.rs"

[[example]]
name = "benchmark"
path = "examples/benchmark.rs"

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

[build-dependencies]
tonic-build = "0.12"
prost-build = "0.13"

[features]
default = ["quic", "grpc"]
quic = []
grpc = []
integration = []  # Enable integration tests with Docker

[dev-dependencies]
tokio-test = "0.4"
criterion = "0.5"
env_logger = "0.11"
rust_decimal_macros = "1.33"
testcontainers = "0.23"
once_cell = "1.19"
proptest = "1.5"
arbitrary = { version = "1.4", features = ["derive"] }

[[test]]
name = "integration"
path = "tests/integration.rs"
required-features = ["integration"]

[[bench]]
name = "benchmarks"
harness = false