Skip to main content

shape_runtime/stdlib/
mod.rs

1//! Standard library modules for the Shape runtime.
2//!
3//! Each submodule implements a `std::*` namespace accessible from Shape code.
4//! Modules follow the [`ModuleExports`](crate::module_exports::ModuleExports)
5//! pattern established by `stdlib_time.rs`.
6//!
7//! All I/O-capable modules are tagged with required capabilities in
8//! [`capability_tags`] and enforced at compile time via the permission system.
9
10pub mod archive;
11pub mod arrow_module;
12pub mod byte_utils;
13pub mod capability_tags;
14pub mod compress;
15pub mod crypto;
16pub mod csv_module;
17pub mod deterministic;
18pub mod env;
19pub mod file;
20pub mod http;
21pub mod json;
22pub mod msgpack_module;
23pub mod regex;
24pub mod runtime_policy;
25pub mod toml_module;
26pub mod unicode;
27pub mod virtual_fs;
28pub mod xml;
29pub mod yaml;
30
31/// Return all shipped native stdlib modules defined in `shape-runtime`.
32///
33/// This is the canonical registry — every `create_*_module()` in the stdlib,
34/// `stdlib_time`, and `stdlib_io` trees is called exactly once. VM-side
35/// modules (state, transport, remote) live in `shape-vm` and must be added
36/// separately by the VM.
37pub fn all_stdlib_modules() -> Vec<crate::module_exports::ModuleExports> {
38    vec![
39        regex::create_regex_module(),
40        http::create_http_module(),
41        crypto::create_crypto_module(),
42        env::create_env_module(),
43        json::create_json_module(),
44        toml_module::create_toml_module(),
45        yaml::create_yaml_module(),
46        xml::create_xml_module(),
47        compress::create_compress_module(),
48        archive::create_archive_module(),
49        unicode::create_unicode_module(),
50        csv_module::create_csv_module(),
51        msgpack_module::create_msgpack_module(),
52        file::create_file_module(),
53        arrow_module::create_arrow_module(),
54        crate::stdlib_time::create_time_module(),
55        crate::stdlib_io::create_io_module(),
56        crate::intrinsics::vector::create_vector_intrinsics_module(),
57        crate::intrinsics::math::create_math_intrinsics_module(),
58        crate::intrinsics::array_transforms::create_array_transforms_module(),
59        crate::intrinsics::rolling::create_rolling_intrinsics_module(),
60        crate::intrinsics::statistical::create_statistical_intrinsics_module(),
61        crate::intrinsics::random::create_random_intrinsics_module(),
62        crate::intrinsics::distributions::create_distributions_intrinsics_module(),
63        crate::intrinsics::convolution::create_convolution_intrinsics_module(),
64        crate::intrinsics::stochastic::create_stochastic_intrinsics_module(),
65        crate::intrinsics::matrix::create_matrix_intrinsics_module(),
66        crate::intrinsics::fft::create_fft_intrinsics_module(),
67        crate::intrinsics::recurrence::create_recurrence_intrinsics_module(),
68    ]
69}