[package]
edition = "2024"
rust-version = "1.90"
name = "helios-persistence"
version = "0.1.47"
authors = ["Helios Software"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Polyglot persistence layer for Helios FHIR Server"
homepage = "https://github.com/HeliosSoftware/hfs/tree/main/crates/persistence"
readme = "README.md"
keywords = [
"helios-software",
"hl7",
"fhir",
"helios-fhir-server",
"persistence",
]
categories = [
"database",
"web-programming",
]
license = "MIT"
repository = "https://github.com/HeliosSoftware/hfs"
resolver = "2"
[package.metadata.docs.rs]
features = [
"sqlite",
"postgres",
"elasticsearch",
"mongodb",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
R4 = ["helios-fhir/R4"]
R4B = ["helios-fhir/R4B"]
R5 = ["helios-fhir/R5"]
R6 = ["helios-fhir/R6"]
advisor = [
"dep:axum",
"dep:tower-http",
"dep:tracing-subscriber",
]
cassandra = [
"dep:cdrs-tokio",
"dep:cdrs-tokio-helpers-derive",
]
default = ["sqlite"]
elasticsearch = ["dep:elasticsearch"]
mongodb = ["dep:mongodb"]
neo4j = ["dep:neo4rs"]
postgres = [
"dep:tokio-postgres",
"dep:deadpool-postgres",
"dep:postgres-types",
]
s3 = [
"dep:object_store",
"dep:aws-config",
"dep:aws-credential-types",
]
sqlite = [
"dep:rusqlite",
"dep:r2d2",
"dep:r2d2_sqlite",
]
[lib]
name = "helios_persistence"
path = "src/lib.rs"
[[bin]]
name = "config-advisor"
path = "src/advisor/main.rs"
required-features = ["advisor"]
[[test]]
name = "composite_polyglot_tests"
path = "tests/composite_polyglot_tests.rs"
[[test]]
name = "composite_routing_tests"
path = "tests/composite_routing_tests.rs"
[[test]]
name = "elasticsearch_tests"
path = "tests/elasticsearch_tests.rs"
[[test]]
name = "postgres_tests"
path = "tests/postgres_tests.rs"
[[test]]
name = "sqlite_tests"
path = "tests/sqlite_tests.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.aws-config]
version = "1"
optional = true
[dependencies.aws-credential-types]
version = "1"
optional = true
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.cdrs-tokio]
version = "8"
optional = true
[dependencies.cdrs-tokio-helpers-derive]
version = "5"
optional = true
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.deadpool-postgres]
version = "0.14"
optional = true
[dependencies.elasticsearch]
version = "8.15.0-alpha.1"
optional = true
[dependencies.helios-fhir]
version = "0.1.47"
[dependencies.helios-fhirpath]
version = "0.1.47"
[dependencies.helios-fhirpath-support]
version = "0.1.47"
[dependencies.humantime]
version = "2"
[dependencies.json-patch]
version = "3"
[dependencies.mongodb]
version = "3"
optional = true
[dependencies.neo4rs]
version = "0.8"
optional = true
[dependencies.object_store]
version = "0.11"
features = ["aws"]
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.postgres-types]
version = "0.2"
features = [
"derive",
"with-serde_json-1",
]
optional = true
[dependencies.r2d2]
version = "0.8"
optional = true
[dependencies.r2d2_sqlite]
version = "0.26"
optional = true
[dependencies.regex]
version = "1"
[dependencies.rusqlite]
version = "0.33"
features = [
"bundled",
"serde_json",
]
optional = true
[dependencies.rust_decimal]
version = "1"
[dependencies.serde]
version = "=1.0.220"
features = ["derive"]
[dependencies.serde_json]
version = "=1.0.143"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"sync",
"rt-multi-thread",
]
[dependencies.tokio-postgres]
version = "0.7"
features = [
"with-serde_json-1",
"with-chrono-0_4",
"with-uuid-1",
]
optional = true
[dependencies.tower-http]
version = "0.6"
features = ["cors"]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dev-dependencies.criterion]
version = "0.5"
features = ["async_tokio"]
[dev-dependencies.paste]
version = "1.0"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.testcontainers]
version = "0.26"
[dev-dependencies.testcontainers-modules]
version = "0.14"
features = [
"postgres",
"elastic_search",
]
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"test-util",
]
[dev-dependencies.tokio-test]
version = "0.4"