1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! nannou's core abstractions.
//!
//! This crate aims to be a stripped-down foundation for nannou projects that don't require
//! windowing or wgpu graphics. These might include:
//!
//! - Headless applications, e.g. for LASER or lighting control.
//! - Embedded applications, e.g. driving motors or LEDs in an art installation.
//! - `rust-gpu` shaders which have strict requirements beyond the limitations of `no_std`.
//! - Hot-loaded dynamic libraries that benefit from faster compilation times.
//!
//! The crate includes nannou's color, math, geometry and noise abstractions without the deep stack
//! of crates required to establish an event loop, interoperate with wgpu, etc. Another way of
//! describing this crate might be "nannou without the I/O".
//!
//! ## Crate `[features]`
//!
//! The primary feature of this crate is support for `#![no_std]`. This means we can use the crate
//! for embedded applications and in some cases rust-gpu shaders.
//!
//! By default, the `std` feature is enabled. For compatibility with a `#![no_std]` environment be
//! sure to disable default features (i.e. `default-features = false`) and enable the `libm`
//! feature. The `libm` feature provides some core functionality required by crates
//!
//! - `std`: Enabled by default, enables the Rust std library. One of the primary features of this
//!   crate is support for `#![no_std]`. This means we can use the crate for embedded applications
//!   and in some cases rust-gpu shaders. For compatibility with a `#![no_std]` environment be sure
//!   to disable default features (i.e. `default-features = false`) and enable the `libm` feature.
//! - `libm`: provides some core math support in the case that `std` is not enabled. This feature
//!   must be enabled if `std` is disabled.
//! - `serde`: enables the associated serde serialization/deserialization features in `glam`,
//!   `palette` and `rand`.

#![no_std]

pub mod color;
pub mod geom;
pub mod math;
pub mod prelude;
pub mod rand;

/// Re-export `glam` - linear algebra lib for graphics.
pub use glam;