Skip to main content

enki/
lib.rs

1//! # Enki
2//!
3//! Pure Rust heterogeneous GPU compute platform with Just-In-Time (JIT) compilation.
4//!
5//! Enki enables writing high-performance compute and graphics algorithms using standard,
6//! idiomatic Rust (structs, traits, pattern matching, iters, atomics, enums and payloads, macros, and `crates.io` dependencies)
7//! and executes them across GPU and CPU hardware with zero-cost abstractions.
8
9pub mod enki_api;
10
11// Core Execution Context
12pub use enki_api::context::{
13    Enki, EnkiBuilder, Flow, GpuInstant, active_engine, active_enki, set_active_enki,
14};
15
16// Spatial Domain & Topology
17pub use enki_api::space::{IntoTile, Space, TileConfig};
18
19// GPU Resources & Memory Types
20pub use enki_api::resources::{
21    GpuAtomic, GpuAtomicTarget, GpuAtomicVec, GpuParam, GpuTileMem, GpuVec, Slice, SliceMut,
22};
23
24// Safe Nam Execution Traits & Ingress Reflection
25pub use enki_api::type_safety::*;
26
27// Re-export contract types directly at root for macros
28pub use anu::nam_args_api::{ExpectedParamKind, NamParamMeta, NamSignatureContract};
29
30// Procedural Macro for GPU Nam Functions
31pub use enki_macros::nam;
32
33/// Convenient re-exports of common Enki types and traits.
34pub mod prelude {
35    pub use super::enki_api::context::{
36        Enki, EnkiBuilder, Flow, GpuInstant, active_engine, active_enki, set_active_enki,
37    };
38    pub use super::enki_api::resources::{
39        GpuAtomic, GpuAtomicTarget, GpuAtomicVec, GpuParam, GpuTileMem, GpuVec, Slice, SliceMut,
40    };
41    pub use super::enki_api::space::{IntoTile, Space, TileConfig};
42    pub use super::enki_api::type_safety::*;
43    pub use super::gpu_vec;
44    pub use super::nam;
45    pub use super::{ExpectedParamKind, NamParamMeta, NamSignatureContract};
46}