Skip to content

OrdoFP 0.1.0 — initial public release

Latest

Choose a tag to compare

@ordokr ordokr released this 20 Jul 16:04

First release on crates.io. OrdoFP began as a fork of
frunk (see THIRD_PARTY_NOTICES.md for
lineage and attribution) and was developed privately before this release;
docs/migration.md explains the internal 2.x → 0.1.0 version reset.

Workspace

  • ordofp — facade crate re-exporting the default surface (std, derives,
    proc-macros, Probatum).
  • ordofp_core — the library proper: data structures, type classes, optics,
    effects, async, parallel execution.
  • ordofp_macros — derive (Universalis, NominataUniversalis) and
    procedural (path!, path_type!) macro support.
  • ordofp_laws — property-based law checking (Functor/Monad/algebraic laws)
    for OrdoFP instances and your own.
  • ordofp_bayes — standalone probabilistic-programming crate (SMC,
    Metropolis-Hastings, importance sampling).

Highlights

  • Data structures: HList (Coniunctio), coproducts (Disiunctio),
    NonEmpty, Zipper, persistent collections (pfds).
  • Type classes: GAT-based Functor / Applicatio / Monad / Compositio /
    Unitas hierarchy, Semigroup/Monoid, Traversable.
  • Optics: lenses, prisms, isos, traversals, affine + indexed optics,
    profunctor encoding, zero-clone AspectusRef composition.
  • Generic programming: Universalis / NominataUniversalis
    struct↔HList conversion, sculpting, Transfigurator.
  • Effects & async: Flumen streams with optional fusion, Fibra
    structured concurrency, row-typed effects (nexus), CPS monad
    transformers, tokio/smol runtime integrations.
  • Parallelism: ParFlumen with scalar/rayon/wgpu backends (feature
    gated), SIMD helpers.
  • Validation: Probatum accumulating validation with a spill-free inline
    error buffer.

All non-default functionality is feature-gated and additive; see
docs/FEATURE_FLAGS.md for the canonical matrix.

Builds on stable Rust (MSRV 1.97). The opt-in nightly feature enables
unstable-Rust acceleration (branch-prediction hints, portable_simd-backed
f32 kernels) with identical semantics.

Dependency posture: the default build has zero runtime dependencies (only
the compile-time proc-macro stack); serde/tokio/smol/rayon/wgpu integrations
are strictly opt-in. ordofp_bayes depends only on rand (Normal and
Exp(1) sampling are implemented in-crate), and ordofp_laws pulls
quickcheck without its logging stack.

Crates

Crate crates.io docs.rs
ordofp https://crates.io/crates/ordofp https://docs.rs/ordofp
ordofp_core https://crates.io/crates/ordofp_core https://docs.rs/ordofp_core
ordofp_macros https://crates.io/crates/ordofp_macros https://docs.rs/ordofp_macros
ordofp_bayes https://crates.io/crates/ordofp_bayes https://docs.rs/ordofp_bayes
ordofp_laws https://crates.io/crates/ordofp_laws https://docs.rs/ordofp_laws