Cargo Features

[dependencies]
tardis = { version = "0.1.0-rc.17", default-features = false, features = ["conf-remote", "digest", "aead", "block_modes", "base64", "crypto", "crypto-with-sm", "future", "tls", "reldb-core", "reldb-postgres", "reldb-mysql", "reldb-sqlite", "reldb", "web-server", "openapi-redoc", "openapi-rapidoc", "openapi-swagger", "web-client", "ws-client", "cache", "mq", "mail", "os", "fs", "process", "tracing", "tokio-console", "tracing-appender", "web-server-grpc", "cluster", "build-info", "opentelemetry-http", "test"] }
default = async-trait, base64, tardis-macros

These default features are set whenever tardis is added without default-features = false somewhere in the dependency tree.

conf-remote = async-trait, crypto, web-client

Affects config_dto::FrameworkConfig.conf_center, config::config_nacos

digest crypto? = hmac, md-5, sha1, sha2, sm3

Enables digest

Affects crypto::crypto_digest

aead crypto? = aes-gcm, aes-gcm-siv, aes-siv

Enables aead

AES

Affects crypto::crypto_aead

block_modes crypto? = aes, cbc, cipher, ecb
base64 default

Affects crypto::crypto_base64, tardis::crypto

crypto conf-remote? crypto-with-sm? = aead, block_modes, digest, rsa

Affects config_processor::decryption, crypto::crypto_hex, crypto::crypto_key, crypto::crypto_main, crypto::crypto_base64, tardis::crypto

crypto-with-sm = crypto, libsm, num-bigint

Affects crypto_main::TardisCrypto.sm4, crypto_main::TardisCrypto.sm2, crypto::crypto_sm2_4

future reldb-core? web-server? ws-client? = async-stream, async-trait, futures, futures-util
tls ws-client? = native-tls
reldb-core reldb? reldb-mysql? reldb-postgres? reldb-sqlite? = future, sea-orm, sqlparser, sqlx

Affects tardis::db

reldb-postgres reldb? = reldb-core

Enables json-array and sqlx-postgres of sea-orm

RelDB

and reldb-postgres of tardis-macros

Tardis Macros

reldb-mysql reldb? = reldb-core

Enables sqlx-mysql of sea-orm, reldb-mysql of tardis-macros

reldb-sqlite reldb? = reldb-core

Enables sqlx-sqlite of sea-orm, reldb-sqlite of tardis-macros

reldb = reldb-core, reldb-mysql, reldb-postgres, reldb-sqlite
web-server cluster? web-server-grpc? = future, poem, poem-openapi, poem-openapi-derive

Affects web::context_extractor, web::uniform_error_mw, web::web_resp, web::web_server, web::web_validation

openapi-redoc

Enables redoc of poem-openapi

Web Server

openapi-rapidoc

Enables rapidoc of poem-openapi

openapi-swagger

Enables swagger-ui of poem-openapi

web-client conf-remote? = reqwest

Affects tardis::search, web::web_client

ws-client cluster? = future, tls, tokio-tungstenite

Affects web::ws_client

cache cluster? = deadpool-redis, futures-util, redis

Affects tardis::cache

mq = amq-protocol-types, async-global-executor, futures-util, lapin

Affects tardis::mq

mail = lettre

Affects tardis::mail

os = anyhow, async-trait, rust-s3, urlencoding

Affects tardis::os

fs

Enables fs and io-util of tokio

Tokio

process

Enables process of tokio

tracing = opentelemetry, opentelemetry-http, opentelemetry-otlp, opentelemetry_sdk, tracing-opentelemetry

Enables optional poem

Affects tracing::HeaderInjector, tracing::HeaderExtractor, tracing::TracingConfig.endpoint, tracing::TracingConfig.protocol, tracing::TracingConfig.server_name, tracing::TracingConfig.headers, log::LogConfig.tracing

tokio-console = console-subscriber
tracing-appender

Enables tracing-appender

Affects log::LogConfig.tracing_appender

web-server-grpc = web-server

Enables poem-grpc

Affects module::WebServerGrpcModule

cluster = cache, web-server, ws-client
build-info = git-version

Affects utils::build_info

opentelemetry-http tracing?

Enables opentelemetry-http ^0.13

test = testcontainers, testcontainers-modules

Affects tardis::test

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.

urlencoding os?
tardis-macros default reldb-mysql? reldb-postgres? reldb-sqlite?
console-subscriber tokio-console?
tracing-opentelemetry tracing?

Enables tracing-opentelemetry ^0.25

Tracing

opentelemetry tracing?

Enables opentelemetry ^0.24

opentelemetry_sdk tracing?

Enables opentelemetry_sdk ^0.24

opentelemetry-otlp tracing?

Enables opentelemetry-otlp ^0.17

native-tls tls?

Enables native-tls

TLS

cipher block_modes?

Enables cipher

Crypto

sha1 digest?

Enables sha1

Digest see https://github.com/RustCrypto/hashes

sha2 digest?
md-5 digest?

Enables md-5

md5 is no longer considered secure

sm3 digest?

Enables sm3

this sm3 lib support digest trait

hmac digest?
rsa crypto?

Enables rsa

RSA

Affects crypto::crypto_rsa

aes block_modes?
aes-gcm-siv aead?
aes-gcm aead?
aes-siv aead?
cbc block_modes?

Enables cbc

block-mode

ecb block_modes?
libsm crypto-with-sm?
num-bigint crypto-with-sm?
futures future?

Enables futures

Future

async-stream future?
futures-util cache? future? mq?
async-trait default conf-remote? future? os?
sea-orm reldb-core? reldb-mysql? reldb-postgres? reldb-sqlite?
sqlx reldb-core?
sqlparser reldb-core?
poem-openapi openapi-rapidoc? openapi-redoc? openapi-swagger? web-server?
poem-openapi-derive web-server?
poem web-server?
reqwest web-client?

Enables reqwest

Web Client

tokio-tungstenite ws-client?

Enables tokio-tungstenite

Websocket Client

redis cache?

Enables redis

Redis

deadpool-redis cache?
lapin mq?

Enables lapin

Rabbit

amq-protocol-types mq?
async-global-executor mq?
lettre mail?

Enables lettre

Mail

rust-s3 os?
anyhow os?
testcontainers test?

Enables testcontainers

Test
update this may cause break changes

testcontainers-modules test?
git-version build-info?

Enables git-version

Debug