backbone-core 3.0.2

Backbone Framework Core - Foundation for generic CRUD system
Documentation
[package]
name = "backbone-core"
version = "3.0.2"
edition = "2021"
description = "Backbone Framework Core - Foundation for generic CRUD system"
license = "MIT OR Apache-2.0"
repository = "https://github.com/faridlab/backbone-framework"

[dependencies]
# Sibling crates
backbone-orm = { path = "../backbone-orm", version = "3.0.2" }
# Core dependencies
tokio = { version = "1.0", features = ["full"] }
async-trait = "0.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
uuid = { version = "1.0", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }

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

# Validation
regex = "1.0"

# Logging
tracing = "0.1"

# Messaging — used by GenericCrudService for event publishing
backbone-messaging = { path = "../backbone-messaging", version = "3.0.2" }

# Configuration
serde_yaml = "0.9"
toml = "0.8"

# gRPC
tonic = "0.12"
prost = "0.13"
prost-types = { version = "0.13", optional = true }

# Web Framework (Axum for generic CRUD handlers)
axum = { version = "0.7", features = ["macros"] }
tower = "0.4"
tower-http = { version = "0.5", features = ["cors", "trace"] }

# Database (optional - only for builder pattern examples)
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "uuid", "chrono"], optional = true }

# OpenAPI schema generation (optional, default-off — see `openapi` feature)
utoipa = { version = "5", features = ["uuid", "chrono"], optional = true }

[dev-dependencies]
# backbone-orm is a normal dependency above (used by tests too, e.g.
# tests/crud_macro_compile.rs expanding `impl_crud_repository!`).
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "uuid", "chrono"] }

[features]
default = []
database = ["sqlx"]
postgres = ["sqlx"]
prost = ["prost-types"]
# OpenAPI/Swagger schema generation — derives `utoipa::ToSchema` on the HTTP
# envelope/request types and exposes `openapi::BackboneComponents`. Default-off;
# adds no deps to the default build. See docs/openapi.md.
openapi = ["dep:utoipa"]
# Enable all persistence features
full = ["postgres", "prost"]