1f5f636442
## Changes to `definitions.units` - Added vim folds repurposing the `!category`/`!endcategory` syntax. There's a modeline at the bottom of the file for this. - To make the vim folds work better, every single unit now has a category. I also moved them around a little bit so that each category collapses to a single line. This makes the file much easier to navigate. Kind of acts as its own table of contents. - Rearranged some of the categories, and moved things between categories. - Adjusted several comments, and added an explanation of the file to the top. - Deleted some legacy GNU Units directives like !utf8 that Rink will never use. Also several of the function/LUTs that are commented out. - Uncommented some fractions that apparently GNU Units didn't like. Also uncommented `googol`. - Moved mercury to the periodic table section. - Moved the 4 newest elements to be alphabetically sorted. - Added atomic numbers to every element. (I double checked that the numbers are correct, but I might have still gotten some mixed up...) - Fixed a few typos and trailing whitespace. ![image](https://github.com/tiffany352/rink-rs/assets/1254344/3d3fbc58-1928-4ded-8612-a84778127c65) ## Changes to rink-core - Now prints an error on unrecognized directives instead of silently ignoring them. - Ignores categories for non-units. This may be re-added later but it will require refactoring `Context::categories` to respect namespaces. - Improved some of the error messages from the units DB loader. |
||
---|---|---|
.github/workflows | ||
cli | ||
core | ||
irc | ||
rink-js | ||
sandbox | ||
web | ||
.codecov.yml | ||
.gitignore | ||
.tokeignore | ||
.travis.yml | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE-GPL | ||
LICENSE-MPL | ||
README.md |
Rink
Rink is a 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.
Unique features:
- High-precision bignum rational arithmetic
- Detailed error messages
- Shows SI physical quantities
- Finds applicable SI derived units automatically
- Helps with dimensionality analysis, such as by offering unit factorizations and finding units for quantities.
- Open source
- First-class support for non-absolute temperature scales
Manual
Describes (hopefully) everything you need to know to use Rink's expression language.
Web Interface: rinkcalc.app
Rink is available via a web interface in addition to the terminal-based interface. Useful for doing calculations on mobile.
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 |
Examples
> kWh/year -> W
0.1140795 watt (power)
> W -> J
Conformance error: 1 watt (power) != 1 joule (energy)
Suggestions: multiply left side by time, multiply right side by frequency
> gallon gasoline -> kWh
approx. 36.63388 kWh (energy)
> googol^100
1.0e10000 (dimensionless)
Library Usage
[dependencies]
rink-core = "0.6"
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
Contribution guide can be found on the wiki: https://github.com/tiffany352/rink-rs/wiki#contribution-guide
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.