[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]
tokio = { version = "1.40", features = ["rt", "sync", "time", "macros"] }
async-trait = "0.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha2 = "0.10"
hex = "0.4"
chrono = { version = "0.4", features = ["serde"] }
thiserror = "2.0"
once_cell = "1.19"
flate2 = "1.0"
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"]
memory-registry = []
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 = []
full = ["providers-all", "gateway"]
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
[profile.bench]
inherits = "release"