evenframe_core 0.1.2

Core functionality for Evenframe - TypeScript type generation and database schema synchronization
Documentation
[package]
name = "evenframe_core"
version = "0.1.2"
edition = "2024"
authors = ["Jakob Lochinski"]
license = "MIT"
description = "Core functionality for Evenframe - TypeScript type generation and database schema synchronization"
repository = "https://github.com/rymskip/evenframe"
documentation = "https://docs.rs/evenframe_core"
readme = "../README.md"
keywords = ["typescript", "codegen", "surrealdb", "schema", "types"]
categories = ["development-tools", "database"]

[features]
default = ["surrealdb"]

# Database providers
surrealdb = ["dep:surrealdb"]
sql = ["dep:sqlx"]
postgres = ["sql", "sqlx?/postgres"]
mysql = ["sql", "sqlx?/mysql"]
sqlite = ["sql", "sqlx?/sqlite"]

# Convenience feature for all SQL databases
sql-all = ["postgres", "mysql", "sqlite"]

# All providers
all-providers = ["surrealdb", "sql-all"]

[dependencies]
# workspace dependencies
serde_json = { workspace = true }
regex = { workspace = true }
try_from_expr = { workspace = true }
syn = { workspace = true }
tracing = { workspace = true }
convert_case = { workspace = true }
tokio = { workspace = true }
toml = { workspace = true }

# Database providers (optional based on features)
surrealdb = { version = "3.0.0", features = ["kv-mem", "protocol-http"], optional = true }
sqlx = { version = "0.8", features = ["runtime-tokio", "tls-rustls"], optional = true }

# Required for async traits in provider abstraction
async-trait = "0.1"
dotenv = "0.15.0"
proc-macro2 = "1.0.95"
quote = "1.0.40"
serde = { version = "1.0.219", features = ["derive"] }
rand = "0.9.2"
rand_distr = "0.5.1"
heck = "0.5.0"
chrono = "0.4.41"
chrono-tz = "0.10.4"
derive_more = { version = "2.0.1", features = ["from"] }
petgraph = "0.8.2"
futures = "0.3.31"
bon = "3.6.5"
uuid = { version = "1.17", features = ["v4"] }
axum = { version = "0.8.4", features = ["macros"] }
serde-value = "0.7.0"
thiserror = "2.0.12"
ordered-float = { version = "5.0.0", features = ["serde"] }
derive-syn-parse = "0.2.0"
linkme = "0.3.33"
once_cell = "1.21.3"
walkdir = "2.5"

# For FlatBuffers/Protobuf parsing
logos = "0.15"
protox = "0.8"
prost-types = "0.13"

# For ts_template! macro experiment
macroforge_ts = "0.1.17"

[dev-dependencies]
proptest = "1.4"
mockall = "0.12"
temp-env = "0.3"
tempfile = "3.10"
pretty_assertions = "1.4"