tinyvec
Just, really the littlest Vec you could need. So smol. (by Lokathor)
uom
Units of measurement -- type-safe zero-cost dimensional analysis (by iliekturtles)
tinyvec | uom | |
---|---|---|
4 | 27 | |
605 | 961 | |
- | - | |
4.4 | 6.9 | |
about 2 months ago | 16 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tinyvec
Posts with mentions or reviews of tinyvec.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-05-01.
-
The Better Alternative to Lifetime GATs
funny indeed. i changed all my projects to use tinyvec
-
"pure safe crates"
I've seen the cost of zeroing memory be measurable, or maybe significant enough to care about, but I've never seen 90% of cycles spent on it, the only case I know of that gets close is creating an empty TinyVec versus an empty SmallVec with an inline buffer of 256 bytes. In my opinion that's an unreasonably large inline buffer. At inline buffers of 128 bytes and below, the overhead is less than 50%, and that's on a microbenchmark of the Default impl; the effect is rapidly diluted in a real program.
-
single-producer single-consumer concurrent queue
My point is that "implementation that doesn't use unsafe" is not necessarily always slower than "implementation that does use unsafe". Often people assume that this is the case, and it isn't. tinyvec currently beats smallvec in more than a few benchmarks. Not all, but some. And this sometimes visible to users. The point is that if you want speed, you don't necessarily need to give up any safety at all. Most differences in performance are due to the amount of effort or expertise that has been spent on the codebase, not the amount of unsafe in it.
-
Now that the long-awaited const generics (MVP) have come to stable in 1.51, what crates are going to gain the most from it?
https://github.com/Lokathor/tinyvec will definitely benefit, although not as much as something currently relying on typenum.
uom
Posts with mentions or reviews of uom.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-07-10.
- Units of measurement – type-safe zero-cost dimensional analysis
-
What's everyone working on this week (28/2023)?
uom (type-safe zero-cost dimensional analysis) v0.35.0 got released today!
-
What's everyone working on this week (6/2023)?
It happened! v0.34.0 (crates.io) has been released.
-
What's everyone working on this week (4/2023)?
My hope is to release uom (type-safe zero-cost dimensional analysis) v0.34.0 this week. There have been a huge number of new quantities and units added since v0.33.0.
-
What's everyone working on this week (36/2022)?
I have been reviewing lots of PRs recently submitted to add many new units and quantities to uom (type-safe zero-cost dimensional analysis).
-
What's everyone working on this week (31/2022)?
I reviewed some PRs to add new units to uom (type-safe zero-cost dimensional analysis) yesterday and am really hoping to make progress on logarithmic units this week. no_std support is slowing down the later.
-
What's everyone working on this week (30/2022)?
Working on a PR to uom (type-safe zero-cost dimensional analysis) to support logarithmic units.
-
Is RUST aiming to build an ecosystem on scientific computing?
A great type system enables things like unit preserving calculations and Formal Methods.
-
Survey of bad error messages emitted by the "misuse" of trait heavy crates
Is it the error messages, or other parts of uom that make it unwieldy to use? Feedback welcome here or as a new issue.
-
What's everyone working on this week (26/2022)?
I'm working through reviewing the open PRs for uom (type-safe zero-cost dimensional analysis).
What are some alternatives?
When comparing tinyvec and uom you can also consider the following projects:
heapless - Heapless, `static` friendly data structures
xv6-riscv - Xv6 for RISC-V
trantor - a non-blocking I/O tcp network lib based on c++14/17
insect - High precision scientific calculator with support for physical units
storages-api
serde - Serialization framework for Rust
utils - Utility crates used in RustCrypto
onnx - Open standard for machine learning interoperability
totally-safe-transmute
xlite - Query Excel spredsheets (.xlsx, .xls, .ods) using SQLite
tyrade - A pure functional language for type-level programming in Rust
Ruby Units - A unit handling library for ruby