farp 1.0.2

Forge API Gateway Registration Protocol (FARP) - Schema-aware service discovery and gateway integration
Documentation
[package]
name = "farp"
version = "1.0.2"
edition = "2021"
rust-version = "1.75"
authors = ["Rex Raphael <rex.raphael@outlook.com>"]
description = "Forge API Gateway Registration Protocol (FARP) - Schema-aware service discovery and gateway integration"
license = "MIT OR Apache-2.0"
repository = "https://github.com/xraph/farp"
documentation = "https://docs.rs/farp"
keywords = ["api-gateway", "service-discovery", "openapi", "asyncapi", "schema"]
categories = ["network-programming", "web-programming", "api-bindings"]

[dependencies]
# Async runtime
tokio = { version = "1.40", features = ["rt", "sync", "time", "macros"] }
async-trait = "0.1"

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# Hashing
sha2 = "0.10"
hex = "0.4"

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

# Error handling
thiserror = "2.0"

# Global state
once_cell = "1.19"

# Compression
flate2 = "1.0"

# Optional dependencies for providers
oas3 = { version = "0.20", optional = true }
async-graphql-parser = { version = "7.0", optional = true }
prost = { version = "0.14", optional = true }
prost-types = { version = "0.14", optional = true }
tonic = { version = "0.14", optional = true }
apache-avro = { version = "0.21", optional = true }

[dev-dependencies]
tokio = { version = "1.40", features = ["rt-multi-thread", "macros", "test-util"] }
proptest = "1.5"
criterion = "0.8"
anyhow = "1.0"

[features]
default = ["memory-registry"]

# Registry implementations
memory-registry = []

# Schema providers
providers-openapi = ["oas3"]
providers-asyncapi = []
providers-grpc = ["prost", "prost-types", "tonic"]
providers-graphql = ["async-graphql-parser"]
providers-orpc = ["oas3"]
providers-avro = ["apache-avro"]
providers-thrift = []
providers-all = [
    "providers-openapi",
    "providers-asyncapi",
    "providers-grpc",
    "providers-graphql",
    "providers-orpc",
    "providers-avro",
    "providers-thrift",
]

# Gateway client
gateway = []

# Everything
full = ["providers-all", "gateway"]

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

[profile.bench]
inherits = "release"