5859e928e9
Deduplicates a bunch of code by having Display impls use the TokenFmt implementations. There were some bugs with the TokenFmt formatting that I had to fix, and some slight differences in their output that required adjusting tests. This also fixes a longstanding bug where there were 2 spaces in the output, like `42 (dimensionless)`. I also got rid of that two-step pattern parsing stuff, it's simpler to iterate the chars of the pattern string instead. |
||
---|---|---|
.github/workflows | ||
cli | ||
core | ||
docs | ||
irc | ||
rink-js | ||
sandbox | ||
web | ||
.codecov.yml | ||
.editorconfig | ||
.gitignore | ||
.tokeignore | ||
.travis.yml | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE-GPL | ||
LICENSE-MPL | ||
Makefile | ||
PACKAGING.md | ||
README.md |
Rink
Rink is an open source unit-aware calculator. It can be used for physics and engineering calculations, as well as dimensionality analysis.
Rink supports most systems of measurements including SI, CGS, natural, international customary, US customary, UK customary, as well as historical measurements. In addition, Rink supports currency conversions.
Features
- Arbitrary precision math
- Shows SI physical quantities
- Finds applicable SI derived units automatically
- Detailed error messages
- Helps with dimensionality analysis, such as by offering unit factorizations and finding units for quantities.
- Temperature conversions
Manual
Describes (hopefully) everything you need to know to use Rink's expression language.
Install
The most common version of Rink is the command line interface rink
.
Package Manager | Command |
---|---|
Cargo | cargo install rink |
Pacman | pacman -S rink |
Nix | nix-env -i rink |
Scoop | scoop install rink |
Downloads are also available at https://rinkcalc.app/releases.
Web Interface: rinkcalc.app
Rink is available via a web interface in addition to the terminal-based interface. Useful for doing calculations on mobile.
Examples
How much does it cost to run my computer each year? Say it uses 100 watts for 4 hours per day, and use the US average electricity cost.
> 0.1545$/kWh * 100W * (4 hours / day) to $/year
approx. 22.57196 USD / tropicalyear
If you made a solid sphere of gold the size of the moon, what would the surface gravity be?
> volume of moon * (19.283 g/cm^3) * G / (radius of moon)^2
approx. 9.365338 meter / second^2 (acceleration)
> ans to gravity
approx. 0.9549987 gravity (acceleration)
Ever heard someone joke about Americans measuring fuel efficiency as rods per hogshead? Let's try with the average US car fuel efficiency.
> 9.4 km/l to mpg
approx. 22.11017 mpg (fuel_efficiency)
> 9.4 km/l to rods per hogshead
approx. 445741.0 rod / ushogshead (fuel_efficiency)
And then you wonder, wait, what even are these units anyway?
> hogshead
Definition: ushogshead = 2 liquidbarrel = approx. 238480942.3 millimeter^3 (volume; m^3)
> liquidbarrel
Definition: liquidbarrel = 31.5 usgallon = approx. 119240471.1 millimeter^3 (volume; m^3)
> rod
Definition: rod = 5.5 yard = 5.0292 meter (length; m)
Library Usage
[dependencies]
rink-core = "0.8"
License
Rink source code is licensed under the Mozilla Public License, version 2. See LICENSE-MPL for details.
The data file definitions.units
is licensed under the GNU General
Public License, version 3. See LICENSE-GPL for details.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work will grant the rights lined out in the MPL, including larger works with secondary licenses.
If you plan on making edits to definitions.units
, check out the
documentation here: docs/rink-defs.5.adoc
Changelog
See here: https://rinkcalc.app/releases