No description
Find a file
Tiffany Bennett f58ccb2676 Prevent weird canonicalizations of gram prefixes
mg -> millimillikg is now mg -> milligram
2016-08-29 17:50:03 -04:00
src Allow at most one prefix on a unit 2016-08-27 22:25:03 -04:00
tests Allow at most one prefix on a unit 2016-08-27 22:25:03 -04:00
Cargo.toml Release 0.3.0 2016-08-26 18:09:30 -04:00
datepatterns.txt Add dedicated date patterns file, improve dates 2016-08-22 14:53:33 -04:00
definitions.units Prevent weird canonicalizations of gram prefixes 2016-08-29 17:50:03 -04:00
LICENSE-GPL Switch to MPL 2016-08-22 10:46:22 -04:00
LICENSE-MPL Switch to MPL 2016-08-22 10:46:22 -04:00
README.md Release 0.3.0 2016-08-26 18:09:30 -04:00

Rink

A unit conversion tool in Rust. The name is a subset of frink, another unit conversion tool, to indicate that this tool implements a subset of frink's features.

Select features:

  • High-precision bignum rational arithmetic
  • Detailed error messages
  • IRC bot

Install

cargo install rink

Examples

> kWh/year -> W
approx. 0.1140795 W (power)
> W -> J
Conformance error
   Left side: 1 watt (power)
  Right side: 1 joule (energy)
  Suggestion: 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

Add this to your Cargo.toml:

[dependencies]
rink = "0.3"

and this to your crate root:

extern crate rink;

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.

Changelog

0.3.0

  • Use GNU units database instead of frink's
  • Relicense under MPL
  • Web interface
  • Multi-server IRC in bot
  • Date arithmetic
  • Exact fraction printing
  • Sandboxing
  • Add temperature scale suffixes
  • Factorize query
  • Function call syntax
  • Errors on division by zero
  • Errors on unimplemented imaginary roots
  • Inline unit definitions
  • Bot name prefix is optional in private message
  • Fix associativity of addition
  • Rename commonly confused units
  • Unit lists (hr;min;sec) in conversions
  • "Units for" query
  • Show unit definitions when they are the only term
  • Make / lower precedence than multiplication, add | which is higher precedence
  • Unit tests
  • Output token symbols instead of internal names
  • Canonicalize output units
  • Try to find a matching derived unit for queries

0.2.0

  • Errors for division by zero
  • Better conversion (->) output
  • Bignum arithmetic
  • API docs
  • IRC bot
  • Addition

0.1.1

  • Search for units.txt in standard directories
  • Rustyline

0.1.0

  • Initial release