Cargo Features

[dependencies]
flecs_ecs = { version = "0.1.3", default-features = false, features = ["flecs_regenerate_binding_c", "flecs_force_build_debug_c", "flecs_force_build_release_c", "flecs_force_enable_ecs_asserts", "flecs_use_os_alloc", "flecs_disable_build_c", "flecs_manual_registration", "flecs_term_count_64", "flecs_module", "flecs_script", "flecs_snapshot", "flecs_stats", "flecs_metrics", "flecs_alerts", "flecs_system", "flecs_pipeline", "flecs_timer", "flecs_meta", "flecs_units", "flecs_json", "flecs_doc", "flecs_log", "flecs_app", "flecs_os_api_impl", "flecs_http", "flecs_rest", "flecs_journal", "flecs_nightly_tests"] }
flecs_regenerate_binding_c

sys feature flags


Regenerate the C binding for flecs C

Enables regenerate_binding of flecs_ecs_sys

flecs_force_build_debug_c

force build debug for flecs C, even in release mode

Enables force_build_debug of flecs_ecs_sys

flecs_force_build_release_c

force build release for C flecs, even in debug mode

Enables force_build_release of flecs_ecs_sys

flecs_force_enable_ecs_asserts

force enables both rust and c ecs asserts, useful when running release mode, but wanting the asserts for safety

Enables flecs_force_enable_ecs_asserts of flecs_ecs_sys

flecs_use_os_alloc

tell C flecs to use the OS allocator instead of its own

Enables use_os_alloc of flecs_ecs_sys

flecs_disable_build_c

Enabling this will not build a copy of flecs into this library.
Instead, the executable that this is linked with will need to provide the symbols required. This is useful when using both Rust and C++ code in an application and a copy of flecs is already being linked into the executable via other means.

Enables disable_build_c of flecs_ecs_sys

flecs_manual_registration

Flecs feature flags


When set, the Rust API will require that components are registered before they are used. This is useful in multithreaded applications, where components need to be registered beforehand, and to catch issues in projects where component registration is mandatory. Disabling automatic component registration also improves performance, more so in multi-world applications.
The C API is not affected by this feature.

flecs_term_count_64

Adjust the maximum number of terms in queries to 64. Default is 32.

Enables flecs_term_count_64 of flecs_ecs_sys

flecs_module default flecs_doc flecs_meta flecs_pipeline flecs_script flecs_stats flecs_system flecs_timer flecs_units

Module support

Enables flecs_module of flecs_ecs_sys

Affects addons::module

flecs_script default = flecs_doc, flecs_meta, flecs_module

ECS data definition format

Enables flecs_script of flecs_ecs_sys

flecs_snapshot default

Snapshot & restore ECS data

Enables flecs_snapshot of flecs_ecs_sys

flecs_stats default = flecs_module, flecs_pipeline, flecs_timer

Access runtime statistics

Enables flecs_stats of flecs_ecs_sys

Affects addons::stats

flecs_metrics default = flecs_meta, flecs_pipeline, flecs_units

Expose component data as statistics

Enables flecs_metrics of flecs_ecs_sys

flecs_alerts default = flecs_pipeline

Monitor conditions for errors

Enables flecs_alerts of flecs_ecs_sys

flecs_system default flecs_pipeline = flecs_module

System support

Enables flecs_system of flecs_ecs_sys

Affects addons::system, flecs::system, flecs::pipeline

flecs_pipeline default flecs_alerts flecs_app flecs_metrics flecs_rest flecs_stats flecs_timer = flecs_module, flecs_system

Pipeline support

Enables flecs_pipeline of flecs_ecs_sys

Affects addons::pipeline

flecs_timer default flecs_stats = flecs_module, flecs_pipeline

Timer support

Enables flecs_timer of flecs_ecs_sys

Affects addons::timer, flecs::timer

flecs_meta default flecs_json flecs_metrics flecs_script flecs_units = flecs_module

Reflection support

Enables flecs_meta of flecs_ecs_sys

Affects flecs::meta

flecs_units default flecs_metrics = flecs_meta, flecs_module

Builtin standard units

Enables flecs_units of flecs_ecs_sys

flecs_json default flecs_rest = flecs_meta

Parsing JSON to/from component values

Enables flecs_json of flecs_ecs_sys

flecs_doc default flecs_script = flecs_module

Document entities & components

Enables flecs_doc of flecs_ecs_sys

Affects addons::doc

flecs_log default flecs_journal?

When enabled ECS provides more detailed logs

Enables flecs_log of flecs_ecs_sys

flecs_app default = flecs_pipeline

Application addon

Enables flecs_app of flecs_ecs_sys

Affects addons::app

flecs_os_api_impl default

Default implementation for OS API

Enables flecs_os_api_impl of flecs_ecs_sys

flecs_http default flecs_rest

Tiny HTTP server for connecting to remote UI

Enables flecs_http of flecs_ecs_sys

flecs_rest default = flecs_http, flecs_json, flecs_pipeline

REST API for querying application data

Enables flecs_rest of flecs_ecs_sys

Affects flecs::rest

flecs_journal = flecs_log

Journaling addon (disabled by default)

Enables flecs_journal of flecs_ecs_sys

flecs_nightly_tests

When enabled, flecs ecs library will run examples as test cases. Works only in Nightly

default = flecs_alerts, flecs_app, flecs_doc, flecs_http, flecs_json, flecs_log, flecs_meta, flecs_metrics, flecs_module, flecs_os_api_impl, flecs_pipeline, flecs_rest, flecs_script, flecs_snapshot, flecs_stats, flecs_system, flecs_timer, flecs_units

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