helios-sof 0.2.1

This crate provides a complete implementation of the SQL-on-FHIR specification for Rust, enabling the transformation of FHIR resources into tabular data using declarative ViewDefinitions. It supports all major FHIR versions (R4, R4B, R5, R6) through a version-agnostic abstraction layer.
Documentation
[package]
name = "helios-sof"
version.workspace = true
edition.workspace = true
description = "This crate provides a complete implementation of the SQL-on-FHIR specification for Rust, enabling the transformation of FHIR resources into tabular data using declarative ViewDefinitions. It supports all major FHIR versions (R4, R4B, R5, R6) through a version-agnostic abstraction layer."
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage = "https://github.com/HeliosSoftware/hfs/tree/main/crates/sof"
readme = "README.md"
keywords = ["helios-software", "hl7", "fhir", "helios-fhir-server", "sql-on-fhir"]

[[bin]]
name = "sof-server"
path = "src/server.rs"

[[bin]]
name = "sof-cli"
path = "src/cli.rs"

[features]
default = ["R4"]
R4 = ["helios-fhir/R4", "helios-fhirpath/R4"]
R4B = ["helios-fhir/R4B", "helios-fhirpath/R4B"]
R5 = ["helios-fhir/R5", "helios-fhirpath/R5"]
R6 = ["helios-fhir/R6", "helios-fhirpath/R6"]

[dependencies]
clap = { version = "4.0", features = ["derive", "env"] }
tokio = { version = "1.0", features = ["full"] }
helios-fhir = { path = "../fhir", version = "0.2.1", default-features = false }
helios-fhirpath = { path = "../fhirpath", version = "0.2.1", default-features = false }
helios-fhirpath-support = { path = "../fhirpath-support", version = "0.2.1" }
serde = { workspace = true }
serde_json = { workspace = true }
csv = "1.3"
thiserror = "1.0"
anyhow = "1.0"
axum = { version = "0.8", features = ["json", "query"] }
tower = { version = "0.5", features = ["full"] }
tower-http = { version = "0.6", features = ["cors", "trace", "timeout", "compression-full", "decompression-full"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
http = "1.0"
mime = "0.3"
chrono = { workspace = true, features = ["serde"] }
reqwest = { version = "0.12", features = ["json"] }
url = "2.5"
# Cross-chunk cache for streaming remote resolve().
# Pinned to 0.12 to MATCH aws-sdk-s3, which pins `lru = "^0.12"` as a non-optional
# dependency (pulled by the optional `s3` feature in helios-persistence/-rest).
# This keeps a single lru version compiled across all feature combinations,
# including `s3` builds. The latest lru is 0.18, but raising this would compile two
# lru versions whenever `s3` is enabled, since the AWS SDK's `^0.12` pin (a
# third-party crate we don't control) is semver-incompatible with 0.18. Bump to the
# latest once the AWS SDK updates its lru pin — see ROADMAP.md ("Build & Dependencies").
lru = "0.12"
async-trait = "0.1"
object_store = { version = "0.11", features = ["aws", "gcp", "azure"] }
rayon = "1.8"
arc-swap = "1.6"
parking_lot = "0.12"
arrow = "54.0"
parquet = "54.0"
zip = "2.2"
futures = "0.3"
tokio-stream = "0.1"
bytes = "1.5"
rusqlite = { version = "0.33", features = ["bundled", "serde_json"] }
sqlparser = "0.54"
base64 = "0.22"

[dev-dependencies]
axum-test = "18.0"
flate2 = "1"
tempfile = "3.8"
criterion = { version = "0.5", features = ["html_reports"] }
wiremock = "0.6"

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

[package.metadata.docs.rs]
features = ["R4"]
rustdoc-args = ["--cfg", "docsrs"]