Cargo Features

[dependencies]
data-modelling-core = { version = "2.4.0", default-features = false, features = ["api-backend", "native-fs", "png-export", "databricks-dialect", "git", "schema-validation", "odps-validation", "bpmn", "dmn", "openapi", "wasm", "database", "duckdb-backend", "postgres-backend", "staging", "staging-postgres", "s3", "databricks", "iceberg", "iceberg-glue", "inference", "llm", "llm-online", "llm-offline", "mapping", "pipeline"] }
default = api-backend

The api-backend feature is set by default whenever data-modelling-core is added without default-features = false somewhere in the dependency tree.

api-backend default = reqwest, urlencoding

Affects api_loader::ApiModelLoader, model::api_loader, storage::api

native-fs duckdb-backend? postgres-backend? = tokio

Affects storage::filesystem

png-export = image, imageproc

Affects export::png

databricks-dialect = datafusion
git = git2

Affects data-modelling-core::git

schema-validation odps-validation? = jsonschema

Affects schema::validate_odcs_internal, schema::validate_odcl_internal, schema::validate_openapi_internal, schema::validate_json_schema_internal, schema::validate_odps_internal, schema::validate_cads_internal, schema::validate_workspace_internal, schema::validate_decision_internal, schema::validate_knowledge_internal, schema::validate_decisions_index_internal, schema::validate_knowledge_index_internal, schema::validate_sketch_internal, schema::validate_sketch_index_internal, schema::validate_dbmv_internal

odps-validation = schema-validation
bpmn = quick-xml

Affects export::bpmn, import::bpmn, models::bpmn

dmn = quick-xml

Affects export::dmn, import::dmn, models::dmn

openapi

Affects export::openapi, import::openapi, models::openapi

wasm = js-sys, wasm-bindgen, wasm-bindgen-futures, web-sys

Affects browser::BrowserStorageBackend, storage::browser

database duckdb-backend? postgres-backend? = sha2, toml

Database backend features

Affects data-modelling-core::database

duckdb-backend staging? = database, duckdb, native-fs

Affects database::duckdb, db::StagingDb

postgres-backend staging-postgres? = database, deadpool-postgres, native-fs, tokio-postgres

Affects database::postgres

staging databricks? pipeline? s3? = duckdb-backend, glob, indicatif, rayon, sha2

Staging database for data ingestion pipeline

Affects inferrer::infer_schema_parallel, inferrer::infer_schema_parallel_values, staging::progress, data-modelling-core::staging

staging-postgres = glob, indicatif, postgres-backend, rayon, sha2

Affects data-modelling-core::staging

s3 = aws-config, aws-credential-types, aws-sdk-s3, staging

S3 ingestion support

Affects staging::s3

databricks = reqwest, staging, urlencoding

Databricks Unity Catalog Volumes ingestion (uses reqwest REST API)

Affects staging::unity

iceberg iceberg-glue? = arrow, iceberg-catalog-rest, parquet, tokio

Apache Iceberg lakehouse storage

Enables iceberg ^0.7

Databricks Unity Catalog (uses reqwest for REST API)

Apache Iceberg support (for data lakehouse storage)

Affects export::export_to_catalog, ingest::to_raw_json_records, ingest::IcebergIngestConfig, ingest::ingest_to_iceberg, ingest::ingest_to_iceberg_with_config, staging::catalog, staging::export, staging::iceberg_table

iceberg-glue = iceberg, iceberg-catalog-glue
inference mapping? pipeline?

Schema inference engine

Affects data-modelling-core::inference

llm llm-offline? llm-online? = tokio, zip

LLM-enhanced schema refinement

Affects llm_matcher::LlmSchemaMatcher, data-modelling-core::llm

llm-online = llm, reqwest

Affects data-modelling-core::llm

llm-offline = llama-cpp-2, llm

Affects data-modelling-core::llm

mapping pipeline? = inference

Schema mapping for target schema alignment

Affects data-modelling-core::mapping

pipeline = inference, mapping, staging

Full pipeline integration

Affects data-modelling-core::pipeline

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

tokio iceberg? llm? native-fs?
reqwest api-backend databricks? llm-online?

Enables reqwest ^0.12

HTTP client (for API backend)

urlencoding api-backend databricks?
datafusion databricks-dialect?

Enables datafusion ^45

quick-xml bpmn? dmn?

Enables quick-xml ^0.36

XML processing (for BPMN/DMN)

image png-export?

Enables image ^0.24

Image processing (for PNG export)

imageproc png-export?

Enables imageproc ^0.23

git2 git?

Enables git2 ^0.19

Git operations (optional, feature-gated)

duckdb duckdb-backend?

Enables duckdb

Database backends (optional, feature-gated)

tokio-postgres postgres-backend?
deadpool-postgres postgres-backend?
toml database?

Enables toml ^0.8

Configuration file parsing

sha2 database? staging? staging-postgres?

Enables sha2

Hashing for change detection

glob staging? staging-postgres?

Enables glob

File globbing (for staging ingestion)

rayon staging? staging-postgres?

Enables rayon

Parallel processing

indicatif staging? staging-postgres?

Enables indicatif ^0.17

Progress reporting

aws-config s3?

Enables aws-config

AWS SDK for S3 ingestion

aws-sdk-s3 s3?
aws-credential-types s3?
iceberg-catalog-rest iceberg?

Enables iceberg-catalog-rest ^0.7

iceberg-catalog-glue iceberg-glue?

Enables iceberg-catalog-glue ^0.7

arrow iceberg?

Enables arrow ^55

Arrow and Parquet for Iceberg data writing

parquet iceberg?

Enables parquet ^55

wasm-bindgen wasm?

Enables wasm-bindgen

WASM support (for browser storage backend)

wasm-bindgen-futures wasm?
web-sys wasm?
js-sys wasm?
zip llm?

Enables zip ^2.2

ZIP archive reading (for docx files in LLM documentation loading)

llama-cpp-2 llm-offline?

Enables llama-cpp-2

llama.cpp bindings for offline LLM inference

jsonschema schema-validation?

Enables jsonschema ^0.38.1