Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Unit Open-Source Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
numbat
A statically typed programming language for scientific computations with first class support for physical dimensions and units
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
SI
A header only C++ library that provides type safety and user defined literals for physical units (by bernedom)
-
au
A C++14-compatible physical units library with no dependencies and a single-file delivery option. Emphasis on safety, accessibility, performance, and developer experience. (by aurora-opensource)
-
desktop
Next generation notepad-based calculator, built with extendibility and privacy in mind. (by parsify-dev)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: Show HN: Heynote – A Dedicated Scratchpad for Developers | news.ycombinator.com | 2023-12-22The Math blocks are powered by Math.js (https://mathjs.org/).
Project mention: Show HN: Numbat – A programming language with physical dimensions as types | news.ycombinator.com | 2023-11-16Apparently this replaces https://github.com/sharkdp/insect
Only tangential to this but somebody might find it usefull. I’m doing lots of calculations in Python involving various units. I’m using a similar library called Pint. https://github.com/hgrecco/pint
My business is thermodynamics of power plants. Professionals in the industry tend to use convenient units like C, bars, kJ/kg and so on. But the formulas usualy need basic SI units.
If engineering/scientific projects appeal to you, Units of measurement implementations for Java are woefully behind when compared with the likes of UnitsNet for C#.
Project mention: Is it just mean, or is C# easier to learn than JavaScript or even PHP? | /r/dotnet | 2023-12-06It's not the type system you're complaining about, though. It takes a bit of work but you can write types that include units information with no loss of performance.
Project mention: Show HN: Numbat – A programming language with physical dimensions as types | news.ycombinator.com | 2023-11-16> 365·243 ought to be 365·2425 exactly:
Yes. This is also how it is defined: https://github.com/sharkdp/numbat/blob/ba9e97b1fbf6353d24695...
The calculation above is showing a rounded result (6 significant digits by default).
Project mention: Frink is a programming language designed to make physical calculations simple | news.ycombinator.com | 2023-11-03
Project mention: Frink is a programming language designed to make physical calculations simple | news.ycombinator.com | 2023-11-03Rust as well. There are at least a few libraries to do it, but I'll link the one I wrote:
https://crates.io/crates/dimensioned
JSR 385 reference implementation Indriya - https://github.com/unitsofmeasurement/indriya
Anything with a finite (200 is small even) number of units misses the algebraic structure of the problem mentioned in https://news.ycombinator.com/item?id=36988497 wherein multiplying|dividing two things gives you a (potentially) new unit which implies an open ended "space" of units.
To be concrete (hah!), in C++ a template meta-type with 12 signed integer parameters (6 numerators & 6 denominators for rational exponents of SI base units) might be one way to model it.
Unlike C++ template stuff, Nim macros (like Lisp macros) makes metaprogramming more like procedural programming - just against abstract syntax trees. I think that helps to shield some of this type complexity from users, but the documentation README https://github.com/SciNim/Unchained does better job than I can in an HN comment.
Of course, for unit system conversion, the number of dimensions (6 in SI, 3 in CGS/Gaussian) changes. So, for full generality you need compile-time (if you want static type integration/CT errors) linear algebra over a rational field (at least & conventionally) to project|inverse project. That might be theoretically possible in C++. I would think it very un-fun and unlikely to ever have been done. There's probably a Mathematica package, though.
Units related posts
-
Is it just mean, or is C# easier to learn than JavaScript or even PHP?
-
Show HN: Numbat – A programming language with physical dimensions as types
-
Frink is a programming language designed to make physical calculations simple
-
What Is Dimensional Analysis?
-
GNU Units
-
All I can say is that I relate, very much
-
Are there any languages that allow units?
-
A note from our sponsor - InfluxDB
www.influxdata.com | 5 May 2024
Index
What are some of the best open-source Unit projects? This list will help you:
Project | Stars | |
---|---|---|
1 | mathjs | 14,043 |
2 | insect | 3,151 |
3 | pint | 2,271 |
4 | UnitsNet | 2,136 |
5 | mp-units | 950 |
6 | numbat | 849 |
7 | Unitful.jl | 575 |
8 | SI | 482 |
9 | rink-rs | 396 |
10 | jsr354-api | 346 |
11 | dimensioned | 293 |
12 | au | 279 |
13 | desktop | 203 |
14 | safe-units | 200 |
15 | coulomb | 140 |
16 | measured | 117 |
17 | cpc | 114 |
18 | indriya | 111 |
19 | Unchained | 106 |
20 | Unity-RTS-Selection | 74 |
21 | php-unit-conversion | 65 |
22 | membrain | 61 |
23 | broch | 52 |
Sponsored