Cargo Features

[dependencies]
tardis = { version = "0.1.0-rc.9", 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", "k8s", "fs", "process", "tracing", "tokio-console", "tracing-appender", "web-server-grpc", "cluster", "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 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 k8s? 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 postgres-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, web::ws_processor

openapi-redoc

Enables redoc of poem-openapi ^3

Web Server

openapi-rapidoc

Enables rapidoc of poem-openapi ^3

openapi-swagger

Enables swagger-ui of poem-openapi ^3

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

Affects tardis::os

k8s = future, k8s-openapi, kube

Affects config_dto::ClusterConfig.k8s_svc

fs

Enables fs of tokio

Tokio

process

Enables process of tokio

tracing = opentelemetry, opentelemetry-otlp, tracing-opentelemetry

Affects 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 ^0.2.25

Affects module::WebServerGrpcModule

cluster = cache, web-server, ws-client

Affects tardis::cluster, ws_processor::cluster_protocol

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.

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

Enables tracing-opentelemetry ^0.21

Tracing

opentelemetry tracing?

Enables opentelemetry ^0.20

opentelemetry-otlp tracing?

Enables opentelemetry-otlp ^0.13

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?

Enables libsm ^0.5

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?

Enables poem-openapi ^3

poem-openapi-derive web-server?

Enables poem-openapi-derive ^3

poem web-server?

Enables poem ^1.3

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?

Enables rust-s3

Object Storage

anyhow os?
kube k8s?

Enables kube ^0.87

K8s

k8s-openapi k8s?

Enables k8s-openapi ^0.20

testcontainers test?

Enables testcontainers

Test

testcontainers-modules test?

Enables testcontainers-modules ^0.2