Cargo Features

devela has no features set by default.

[dependencies]
devela = { version = "0.23.0", features = ["alloc", "no_std", "std", "all", "code", "error", "data", "hash", "lang", "glsl", "js", "media", "audio", "draw", "color", "font", "image", "midi", "video", "num", "alg", "geom", "linear", "metric", "shape", "prim", "cast", "join", "split", "rand", "unit", "phys", "time", "wave", "sys", "io", "mem", "bit", "linux", "windows", "text", "ascii", "fmt", "str", "ui", "layout", "desk", "term", "web", "work", "process", "sync", "thread", "unsafe", "unsafe_array", "unsafe_ffi", "unsafe_hint", "unsafe_layout", "unsafe_niche", "unsafe_ptr", "unsafe_slice", "unsafe_str", "unsafe_sync", "unsafe_syscall", "unsafe_thread", "safe", "safe_lang", "safe_media", "safe_draw", "safe_image", "safe_num", "safe_phys", "safe_time", "safe_sys", "safe_mem", "safe_text", "safe_ui", "safe_layout", "safe_work", "safest", "dep_all", "alloc_deps", "text_deps", "work_deps", "dep_allocator_api2", "dep_atomic", "dep_bumpalo", "dep_bytemuck", "dep_const_str", "dep_crossterm", "dep_ffmpeg", "dep_flume", "dep_fontdue", "dep_gilrs", "dep_hashbrown", "dep_image", "dep_itertools", "dep_jiff", "dep_kira", "dep_libm", "dep_log", "dep_memchr", "dep_midir", "dep_miniquad", "dep_orion", "dep_portable_atomic", "dep_portable_atomic_util", "dep_pyo3", "dep_rand_core", "dep_rayon", "dep_raw_cpuid", "dep_regex_lite", "dep_rodio", "dep_safe_arch", "dep_sdl2", "dep_sdl3", "dep_serde", "dep_simdutf8", "dep_stringzilla", "dep_symphonia", "dep_sysinfo", "dep_toml_edit", "dep_tokio", "dep_unicode_segmentation", "dep_unicode_width", "dep_ureq", "dep_wide", "dep_winnow"] }

261/300 (39 remaining), 134 visible, 127 hidden

alloc alloc_deps? dep_hashbrown? dep_jiff? dep_miniquad? std?

* Environment features *
------------------------------------------------------------------------------

Enables alloc of optional allocator-api2, extern_crate_alloc of optional bytemuck, use_alloc of optional itertools, alloc of optional jiff, optional memchr, optional orion, optional portable-atomic-util, optional serde, and optional winnow

Affects ext::ExtAny.as_any_box, buffer::DstVecUsize, base::ColorBase.color_components_vec, vector::VecVector, point::VecPoints, num_trait::NumInt.int_factors, num_trait::NumInt.int_ref_factors, num_trait::NumInt.int_factors_proper, num_trait::NumInt.int_ref_factors_proper, num_trait::NumInt.int_factors_prime, num_trait::NumInt.int_ref_factors_prime, num_trait::NumInt.int_factors_prime_unique, num_trait::NumInt.int_ref_factors_prime_unique, ref::NumRefInt.int_ref_factors, ref::NumRefInt.int_ref_factors_proper, ref::NumRefInt.int_ref_factors_prime, ref::NumRefInt.int_ref_factors_prime_unique, traits::Unit.reduce_chain_i64, traits::Unit.reduce_chain_i128, read::IoRead.read_to_end

no_std
std dep_crossterm? dep_pyo3? dep_regex_lite? dep_sysinfo? = alloc

Enables std of optional fontdue, use_std of optional itertools, safe_api of optional orion, std of optional allocator-api2, optional atomic, and optional bumpalo, std of optional jiff, optional log, and optional memchr, std of optional portable-atomic-util, optional raw-cpuid, optional regex-lite, optional serde, optional simdutf8, optional wide, and optional winnow and extern_crate_std of optional bytemuck

bytemuck:

Enable features requiring items from extern crate std.

Affects reexports::HashMapStd, reexports::HashSetStd, ext::ExtFuture.block_on, fns::prime_number_theorem, traits::Unit.reduce, ext::ExtFuture.block_on, traits::Unit.reduce_chain, image::sixel

all = code, data, lang, media, num, phys, sys, text, ui, work
  • Module features *

They set compile flags named *·· (two interpuncts), for reflection. For example, num·· will be set if any num submodule feature is enabled.

code all? = error
error code?

AllError, DataError, NumError, TextError…

data all? = hash
hash data?

codec
HashFnv, HashFx, HashPengy

lang all? = glsl, js
glsl dep_miniquad? lang?

Affects ffi::glsl

js lang?

Affects ffi::js

media all? = audio, color, draw, font, image, midi, video
audio media?

Enables mixer of optional sdl2

Affects media::audio

draw media?

"sdl3?/gfx"

Enables gfx of optional sdl2

Affects media::draw

color media?

Affects media::color

font media?

Enables ttf of optional sdl2

Affects media::font

image media?

Enables image of optional sdl2

Affects media::image

midi media?

Affects media::midi

video media?

Affects media::video

num all? = alg, geom, prim, rand, unit
alg num?

algebra (linear & symbolic)

geom num? = linear, metric, shape

geometry

linear geom?

Affects geom::linear

metric geom?

Affects geom::metric

shape geom?

Affects geom::shape

prim num? = cast, join, split
cast prim?

PrimitiveCast

join prim?

PrimitiveJoin

split prim?

PrimitiveSplit

rand num?

random number generators

unit num?

unit prefixes

phys all? = time, wave
time phys?

bio
chem
mech

wave phys?

unit
wavelets

Affects phys::wave

sys all? = io, mem
io sys?

fs
no_std_io…

Enables io-std and io-util of optional tokio

Affects image::sixel

mem sys? = bit
bit mem?

BitSize

Affects examples::enumset

linux

os

Affects os::linux

windows

Enables winrt of optional midir and windows of optional crossterm ^0.28.1

crossterm:

Enables windows specific crates.

text all? text_deps? = ascii, fmt, str
ascii text?

AsciiChar

fmt text?

NumStr

str text?

ExtStr, ExtString

ui all? = desk, layout, term, web
layout ui?

Affects ui::layout

desk ui?

back
front

term ui?

ui::front::term, LinuxTermios…

Affects image::sixel

web ui?
work all? work_deps? = process, sync, thread

Enables zeroable_atomics of optional bytemuck

bytemuck:

Implement Zeroable for std::sync::atomic types.

process work?

Enables process of optional tokio

sync work?

Enables sync of optional tokio

thread work?

Enables rt and rt-multi-thread of optional tokio

unsafe = unsafe_array, unsafe_ffi, unsafe_hint, unsafe_layout, unsafe_niche, unsafe_ptr, unsafe_slice, unsafe_str, unsafe_sync, unsafe_syscall, unsafe_thread
  • Safety features *

They are prefixed with either safe or unsafe. Safe features are associated to modules, and unsafe features to purposes.

Usage:

  1. enable the desired unsafe feature.
  2. don't enable the safe feature for that module.

The safest feature forbids unsafe transitively in dependencies (except for Rust's core, alloc and std).

In sync with ./build/features.rs::[UN]SAFE[ST] & ./src/lib.rs::safety) unsafe··

unsafe_array unsafe?

faster array initialization, UninitArray.

unsafe_ffi unsafe?

unsafe foreign function calls (WASM, OS, external C)

unsafe_hint unsafe?

unreachable_unchecked, unchecked arithmetic.

unsafe_layout unsafe?

MemPod, DSTs in the stack, ExtAny::downcast*, Mem::*.

Affects ext::ExtAny.downcast_ref, ext::ExtAny.downcast_mut, data::dst, traits::DataRaw, traits::DataRawCopy, ext::ExtMem.mem_zeroed, ext::ExtMem.mem_transmute_copy, pod::MemPod

unsafe_niche unsafe?

unchecked niche constructors.

unsafe_ptr unsafe?

Pinned, pop methods without Clone, Ptr::*.

unsafe_slice unsafe?

extra slice methods, avoid bound checks.

Affects ext::ExtMem.mem_as_bytes, ext::ExtMem.mem_as_bytes_mut

unsafe_str unsafe?

unchecked utf-8 char and &str conversions.

unsafe_sync unsafe?

SpinLock, Send and Sync impls.

unsafe_syscall unsafe?

os syscalls.

unsafe_thread unsafe?

Logging::set_logger_racy, Env::{remove_var, set_var}.

safe safest? = safe_code, safe_data, safe_lang, safe_media, safe_num, safe_phys, safe_sys, safe_text, safe_ui, safe_work

safe··

safe_code safe_data safe_lang safe?
safe_media safe? = safe_audio, safe_color, safe_draw, safe_font, safe_image
safe_audio safe_color safe_draw safe_media?
safe_font safe_image safe_media?
safe_num safe?
safe_phys safe? = safe_time

[1]

safe_time safe_phys?
safe_sys safe? = safe_io, safe_mem

[2]

safe_io safe_mem safe_sys?
safe_text safe?
safe_ui safe? = safe_layout

[1]

safe_layout safe_ui?
safe_work safe?
safest = safe

safe_async

_bit_u8

Affects examples::bitfield, examples::enumset

_destaque_u16

Affects definitions::DestaqueU16

_destaque_u32

Affects definitions::DestaqueU32

_destaque_u8

Affects definitions::DestaqueU8

_destaque_usize

Affects definitions::DestaqueUsize

_stack_u16

Affects definitions::StackU16

_stack_u32

Affects definitions::StackU32

_stack_u8

Affects definitions::StackU8

_stack_usize

Affects definitions::StackUsize

_tuple

Tuple trait and maximum arity supported (example relative compilation times) arity 12 # time: 3.3s, codegen: 96K (for >=2nd compilations)

Affects list::tuple

_char16

Affects definitions::char16

_char7

Affects definitions::char7

_char8

Affects definitions::char8

_float_f64

Affects fns::prime_number_theorem, traits::Unit.reduce, traits::Unit.reduce_chain

dep_all = dep_allocator_api2, dep_atomic, dep_bumpalo, dep_bytemuck, dep_const_str, dep_crossterm, dep_ffmpeg, dep_flume, dep_fontdue, dep_gilrs, dep_hashbrown, dep_image, dep_itertools, dep_jiff, dep_kira, dep_libm, dep_log, dep_memchr, dep_midir, dep_miniquad, dep_orion, dep_portable_atomic, dep_portable_atomic_util, dep_pyo3, dep_rand_core, dep_raw_cpuid, dep_rayon, dep_regex_lite, dep_rodio, dep_safe_arch, dep_sdl2, dep_sdl3, dep_serde, dep_simdutf8, dep_stringzilla, dep_symphonia, dep_sysinfo, dep_tokio, dep_toml_edit, dep_unicode_segmentation, dep_unicode_width, dep_ureq, dep_wide, dep_winnow
  • Dependency features *

The names are prefixed with dep_, using underscores in place of dashes. They are associated to optional dependencies and groups of modules. Enabling any of these will set the dep·· reflection flag.

Links

In sync with ./config/dep_all.rs & ./src/_dep.rs

alloc_deps = alloc, dep_allocator_api2, dep_bumpalo

groups of dependencies, environment and modules

text_deps = dep_const_str, dep_memchr, dep_regex_lite, dep_stringzilla, dep_unicode_segmentation, dep_unicode_width, text
work_deps = dep_atomic, dep_portable_atomic, dep_rayon, dep_tokio, work
dep_allocator_api2 alloc_deps? dep_all?

individual dependencies features

Enables allocator-api2, allocator-api2 of optional bumpalo and optional hashbrown

dep_atomic dep_all? work_deps?

work::sync

Enables atomic

dep_bumpalo alloc_deps? dep_all?

sys::mem::alloc

Enables bumpalo

dep_bytemuck dep_all?

···

Enables bytemuck, bytemuck of optional safe_arch

dep_const_str dep_all? text_deps?

text::str

Enables const-str

dep_crossterm dep_all? = std

ui::back

Enables crossterm ^0.28.1

Affects back::crossterm

dep_ffmpeg dep_all?

media::video

Enables ffmpeg-the-third

dep_flume dep_all?

work::sync

Enables flume

dep_fontdue dep_all?

media::font

Enables fontdue

dep_gilrs dep_all?

ui::back

Enables gilrs

dep_hashbrown dep_all? = alloc

Enables hashbrown, hashbrown of optional fontdue, hashbrown of optional pyo3

Affects image::sixel

dep_image dep_all?

media::image

Enables image

dep_itertools dep_all?

data::iter

Enables itertools

dep_jiff dep_all? = alloc

phys::time

Enables jiff, jiff-02 of optional pyo3

dep_kira dep_all?

sys::sound

Enables kira

dep_libm dep_all?

num::float

Enables libm

dep_log dep_all?

sys::log

Enables log

dep_memchr dep_all? text_deps?

text:str

Enables memchr, simd of optional winnow

dep_midir dep_all?

media::midi

Enables midir

dep_miniquad dep_all? = alloc, glsl

ui::back

Enables miniquad

Affects back::miniquad

dep_orion dep_all?

data::xipher

Enables orion

dep_portable_atomic dep_all? work_deps?

work::sync

Enables portable-atomic

dep_portable_atomic_util dep_all?

work::sync

Enables portable-atomic-util

Affects ext::ExtFuture.block_on

dep_pyo3 dep_all? = std

lang::py

Enables pyo3

dep_rand_core dep_all?

num::rand

Enables rand_core

dep_rayon dep_all? work_deps?

Enables rayon, multithread of optional sysinfo and rayon of optional fontdue and optional image

image:

Other features
Enables multi-threading

dep_raw_cpuid dep_all?

sys::arch

Enables raw-cpuid

dep_regex_lite dep_all? text_deps? = std

text::parse

Enables regex-lite

dep_rodio dep_all?

sys::sound

Enables rodio

dep_safe_arch dep_all?

sys::arch

Enables safe_arch

dep_sdl2 dep_all?

ui::back

Enables sdl2

dep_sdl3 dep_all?

ui::back

Enables sdl3

dep_serde dep_all?

Enables serde, serde-serialize of optional gilrs, serde of optional allocator-api2 and optional bumpalo, serde of optional toml_edit and optional wide, serde of optional kira, optional orion, optional portable-atomic, and optional pyo3

dep_simdutf8 dep_all?

text::str

Enables simdutf8

dep_stringzilla dep_all? text_deps?

text::str

Enables stringzilla

dep_symphonia dep_all?

sys::sound

Enables symphonia, symphonia of optional kira and optional rodio

dep_sysinfo dep_all? = std

sys::

Enables sysinfo

dep_toml_edit dep_all?

text::parse

Enables toml_edit

dep_tokio dep_all? work_deps?

work::future

Enables tokio

dep_unicode_segmentation dep_all? text_deps?

text::

Enables unicode-segmentation

dep_unicode_width dep_all? text_deps?

text::

Enables unicode-width

dep_ureq dep_all?

sys::net

Enables ureq

dep_wide dep_all?

...

Enables wide

dep_winnow dep_all?

text::parse

Enables winnow, parse of optional toml_edit

Features from optional dependencies

46 (2 required, 44 optional)