alopex-sql 0.7.2

SQL parser components for the Alopex DB dialect
Documentation
[package]
name = "alopex-sql"
version = "0.7.2"
edition = "2024"  # Uses let chains feature
license.workspace = true
repository.workspace = true
description = "SQL parser components for the Alopex DB dialect"
keywords = ["database", "sql", "parser"]
categories = ["database-implementations", "parser-implementations"]
# links: build.rs が cargo::metadata=libdir=... で Nim 共有ライブラリの
# ディレクトリを公開するために必要(コンシューマ側の build.rs が
# DEP_ALOPEX_SQL_PARSER_LIBDIR で受け取り、自分自身のバイナリへ rpath を
# 設定する。cargo:rustc-link-arg は依存クレートの build.rs から出しても
# 最終バイナリのリンクに伝播しないため、この経路が必須)。
links = "alopex_sql_parser"
# SQL パーサーは Nim で実装され、事前ビルド済み共有ライブラリ
# (nim-sql-parser/vendor/<target-triple>/) を通じて FFI 経由で呼び出す。
# 公開 crate には vendor/ のビルド成果物のみを同梱し、Nim ツールチェーンを
# 必要とする .nim ソース・nimble 定義・開発用 Dockerfile は含めない
# (cargo install/build する側に Nim 環境を要求しないため。build.rs 参照)。
exclude = [
    "nim-sql-parser/src",
    "nim-sql-parser/tests",
    "nim-sql-parser/.devcontainer",
    "nim-sql-parser/Dockerfile",
    "nim-sql-parser/nim_sql_parser.nimble",
    "nim-sql-parser/.gitignore",
]

[features]
default = []
async = ["alopex-core/async", "dep:futures"]
tokio = ["async", "alopex-core/tokio", "dep:tokio"]

lane_ci = []
lane_fuzz = []
[dependencies]
thiserror = "2.0"
alopex-core.workspace = true
parquet = { version = "52", features = ["arrow"] }
arrow-array = "52"
arrow-schema = "52"
serde = { workspace = true, features = ["derive"] }
rmp-serde = "1.3"
bincode = "1.3"
futures-core = { workspace = true }
tokio = { workspace = true, optional = true, features = ["rt-multi-thread", "sync"] }
futures = { workspace = true, optional = true }

[dev-dependencies]
proptest = "1.4"
criterion = "0.5"
tempfile = "3.10"
serde_json.workspace = true

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

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

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

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

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

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