Cargo Features

[dependencies]
datex-core = { version = "0.0.7", default-features = false, features = ["embedded", "com_http", "com_tcp", "com_webrtc", "com_serial", "com_websocket", "native_http", "native_websocket", "native_tcp", "native_serial", "native_webrtc", "native_time", "native_rand", "native_uuid", "native_crypto", "wasm_logger", "esp_logger", "env_logger", "tokio_runtime", "wasm_runtime", "embassy_runtime", "syntax_highlighting_legacy", "std", "nostd", "debug", "compiler", "decompiler", "ast", "lsp", "lsp_tokio", "lsp_wasm", "flexi_logger", "wasm-bindgen"] }
default = com_http, com_serial, com_tcp, com_webrtc, com_websocket, compiler, decompiler, flexi_logger, lsp_tokio, native_crypto, native_http, native_rand, native_serial, native_tcp, native_time, native_uuid, native_webrtc, native_websocket, std, syntax_highlighting_legacy, tokio_runtime

default: build with all features enabled + native features (com interfaces, crypto)

embedded = com_http, com_serial, com_tcp, com_websocket, embassy_runtime, nostd

embedded build with nostd

com_http default embedded? native_http

com interfaces base

Affects default_com_interfaces::http

com_tcp default embedded? native_tcp

Affects default_com_interfaces::tcp

com_webrtc default native_webrtc

Affects default_com_interfaces::webrtc

com_serial default embedded? native_serial

Affects default_com_interfaces::serial

com_websocket default embedded? native_websocket

Affects default_com_interfaces::websocket

native_http default = axum, com_http, hyper, tokio-stream

native com intefaces

Affects http::http_server_interface

native_websocket default = com_websocket, tokio-tungstenite, tungstenite

use native websocket

Affects websocket::websocket_client_native_interface, websocket::websocket_server_native_interface

native_tcp default = com_tcp

use native tcp

Affects tcp::tcp_client_native_interface, tcp::tcp_server_native_interface

native_serial default = com_serial, serialport

use native serial

Affects serial::serial_native_interface

native_webrtc default = com_webrtc, webrtc

use webrtc

Affects webrtc::webrtc_native_interface

native_time default

use native time

Affects utils::time_native

native_rand default = rand

use native websocket

native_uuid default = uuid

use native uuid

native_crypto default = openssl

use native crypto

Affects crypto::crypto_native

wasm_logger = console_error_panic_hook, console_log

logger

esp_logger

Enables esp-println

env_logger
tokio_runtime default

runtime

Enables tokio

optional dependencies

Affects task::spawn_with_panic_notify, task::spawn_with_panic_notify_default

wasm_runtime

Enables gloo-timers, tsify, wasm-bindgen-futures, and web-time

Affects task::spawn_with_panic_notify, task::spawn_with_panic_notify_default

embassy_runtime embedded?

Enables async-unsync, embassy-executor, embassy-futures, and embassy-time

Affects runtime::AsyncContext.spawner, task::spawn_with_panic_notify

syntax_highlighting_legacy default

only required for legacy syntax highlighting in decompiler, will be removed in the future

Enables syntect

Affects decompiler::apply_syntax_highlighting

std default compiler

use std

Enables std of bigdecimal, binrw, bytes, futures, futures-core, futures-util, hex, indexmap, log, num, num-bigint, num-integer, num-traits, num_enum, ordered-float, ringmap ^0.1.3, serde, serde_json, serde_with, strum, thiserror, and url

strum:

core dependencies

Affects crypto::crypto_native, utils::time_native

nostd embedded?

Enables foldhash, hashbrown, nostd, spin, alloc of hex, no_std of mopa, alloc and libm of num, alloc of futures, futures-core, and futures-util and alloc of serde, serde_json, and serde_with

serde:

Provide impls for types in the Rust core allocation and collections library including String, Box<T>, Vec<T>, and Cow<T>. This is a subset of std but may be enabled without depending on all of std.

debug

Enables serde-big-array

Affects network::com_hub_metadata, global_context::DebugFlags, global_context::GlobalContext.debug_flags

compiler default = ast, std

note: compiler requires std

Enables ariadne ^0.5.1, internment, logos ^0.15.0, and pretty

Affects datex-core::compiler, datex-core::fmt, datex-core::parser, datex-core::type_inference, datex-core::visitor, local::LocalExecutionContext.compile_scope, remote::RemoteExecutionContext.compile_scope

decompiler default = ast

Affects datex-core::decompiler

ast compiler decompiler

ast structures, needed by compiler, decompiler, and lsp

Affects datex-core::ast

lsp lsp_tokio lsp_wasm?

Enables realhydroper-lsp

Affects datex-core::lsp

lsp_tokio default = lsp

lsp support

Enables runtime-tokio of realhydroper-lsp

lsp_wasm = lsp

enable runtime-agnostic feature for realhydroper-lsp in wasm

Enables runtime-agnostic of realhydroper-lsp

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.

rand native_rand

Enables rand ^0.8.5

uuid native_uuid
flexi_logger default
console_log wasm_logger?
console_error_panic_hook wasm_logger?
webrtc native_webrtc

Enables webrtc ^0.13.0

wasm-bindgen wasm32 not wasm32 implicit feature

Enables wasm-bindgen =0.2.105

wasm-bindgen:

Easy support for interacting between JS and Rust

axum not wasm32 native_http
hyper not wasm32 native_http
openssl not wasm32 native_crypto
serialport not wasm32 native_serial
tokio-stream not wasm32 native_http
tokio-tungstenite not wasm32 native_websocket

Enables tokio-tungstenite ^0.21.0

tungstenite not wasm32 native_websocket

Enables tungstenite ^0.21.0