Expand description
Optional feature integrations with third-party crates.
This module contains all feature-gated integrations with external crates. Each submodule is only compiled when its corresponding feature is enabled. See the module documentation for a complete list of available features. Optional feature integrations with third-party crates.
This module contains all feature-gated integrations with external crates. Each submodule is only compiled when its corresponding feature is enabled.
§Available Features
| Feature | Module | Description |
|---|---|---|
rayon | rayon_bridge | Parallel computation with R interop |
rand | rand_impl | R’s RNG wrapped for rand crate |
rand_distr | - | Re-exports rand_distr distributions |
either | either_impl | Either<L, R> conversions |
ndarray | ndarray_impl | N-dimensional array conversions |
nalgebra | nalgebra_impl | Linear algebra type conversions |
num-bigint | num_bigint_impl | Big integer support |
rust_decimal | rust_decimal_impl | Decimal number support |
ordered-float | ordered_float_impl | Ordered floats for sorting |
uuid | uuid_impl | UUID conversions |
regex | regex_impl | Compiled regex from R strings |
indexmap | indexmap_impl | Order-preserving maps |
time | time_impl | Date/time conversions |
jiff | jiff_impl | Date/time conversions with IANA tz (parallel to time) |
serde | serde_impl | JSON serialization |
num-traits | num_traits_impl | Generic numeric operations |
bytes | bytes_impl | Byte buffer operations |
num-complex | num_complex_impl | Complex number support |
url | url_impl | URL parsing and validation |
sha2 | sha2_impl | Cryptographic hashing |
blake3 | blake3_impl | BLAKE3 hashing |
md5 | md5_impl | MD5 hashing (interop only — broken crypto) |
globset | globset_impl | Shell-style glob matching |
zstd | zstd_impl | zstd compression |
bitflags | bitflags_impl | Bitflag conversions |
bitvec | bitvec_impl | Bit vector conversions |
aho-corasick | aho_corasick_impl | Multi-pattern string search |
toml | toml_impl | TOML parsing |
tabled | tabled_impl | Table formatting |
tinyvec | tinyvec_impl | Small-vector optimized types |
borsh | borsh_impl | Binary serialization |
§Module template
Every integration module follows the same regional layout. Use this as a template when adding a new optional integration:
// region: Scalar conversions (TryFromSexp + IntoR for T)
// region: Option conversions (NA support — Option<T>)
// region: Vector conversions (Vec<T>, Box<[T]>, slice views)
// region: Vec<Option<T>> conversions (NA-aware vectors)
// region: R<X>Ops adapter trait (e.g., RUuidOps, RUrlOps —
// convenience methods callable
// from #[miniextendr] code)
// region: Helper functions
// region: Unit testsExceptions: rayon_bridge.rs exposes a parallel-iteration API, not a
type-conversion adapter, and does not follow this shape. serde_impl.rs
is the JSON adapter (the native serde path lives in crate::serde).
Array-heavy upstreams (ndarray_impl, arrow_impl, nalgebra_impl,
jiff_impl) are larger because their type matrices are larger; the
per-region shape still applies.