#invariants #sequence #ufotofu

no-std ufotofu

Abstractions for lazily consuming and producing sequences

15 unstable releases (5 breaking)

new 0.6.5 Apr 29, 2025
0.6.3 Mar 17, 2025
0.6.0 Dec 5, 2024
0.5.1 Nov 30, 2024
0.3.0 Jul 21, 2024

#691 in Rust patterns

Download history 60/week @ 2025-01-09 28/week @ 2025-01-16 4/week @ 2025-01-23 4/week @ 2025-01-30 6/week @ 2025-02-13 12/week @ 2025-02-20 17/week @ 2025-02-27 78/week @ 2025-03-06 172/week @ 2025-03-13 25/week @ 2025-03-20 3/week @ 2025-03-27 224/week @ 2025-04-03 200/week @ 2025-04-10 31/week @ 2025-04-17 100/week @ 2025-04-24

558 downloads per month
Used in 9 crates

MIT/Apache

185KB
3K SLoC

UFOTOFU

Ufotofu provides APIs for lazily producing or consuming sequences of arbitrary length. Highlights include

  • bulk data transfer without temporary buffers,
  • freely choosable error and item types, even for readers and writers,
  • meaningful subtyping relations between streams and readers, and between sinks and writers,
  • the ability to represent finite and infinite sequences on the type level, and
  • nostd support.

Read the docs here.

You can find an in-depth discussion of the API designs here.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


This project was initially funded through the NGI0 Core Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101092990.

Dependencies

~170KB