Clc is a Command line calculator written in Rust ๐ฆ It eval given expression and print result.
๐ป Installation
๐ฉโ๐ป Usage
๐ฆ Using Clc in Rust Codes
๐ธ Access clc via GraphQL
๐ชช License
There are prebuilt x86-64 binaries for Linux, macOS and Windows on the release page.
You can install the latest release from source using cargo, or build directly from a source checkout.
cargo install clc
curl -sSLf https://github.com/ymgyt/calculator/releases/download/0.1.4/clc-x86_64-unknown-linux-gnu.tar.gz | tar zxf - -C /usr/local/bin
curl -sSLf https://github.com/ymgyt/calculator/releases/download/0.1.4/clc-x86_64-apple-darwin.tar.gz | tar zxf - -C /usr/local/bin
To use clc with docker, execute the following command.
docker run --rm -it ghcr.io/ymgyt/clc:latest
Execute the clc
command to start a repl session. type the expression to evaluate and press Enter.
To exit the session, type quit
or press Ctrl + C.
$ clc
Version: v0.1.4
To quit, press Ctrl+C or type quit
โฏ sqrt(sqrt(16)) * (100 - 1) * (100 + 1) / 9
2222
โฏ quit
bye
You can also retrieve results directly without using a repl session. pass the expression to evaluate with --eval
flag
clc --eval 'sqrt(-2^2) - abs(2)'
Some functions take lambda expression as argument.
A lambda expression is written like |x| { x^2 }
.
{
,}
are optional, so the above expression can also be written as follows |x| x^2
.
โฏ sig(1,10 |x| x^2)
385
โฏ sig(1,10 |x| sig(1,10 |y| x*y))
3025
identifier | description |
---|---|
sqrt(n) |
Returns the square root of a number Return NaN if a negative number provided |
pow(n,m) |
Raise n to the power of m. (= n ^ m ) |
abs(n) |
Compute the absolute value of n |
sig(n,m,lambda) |
Execute lambda with values from n to m and return the sum of the results |
identifier | description |
---|---|
pi |
Archimedesโ constant (ฯ) |
e |
Eulerโs number (e) |
Clc is also available in Rust codes with clc-engine
use clc_engine::Calculator;
fn main() {
let clc = Calculator::new();
let eval = clc.calculate_line("sqrt(sqrt(16)) * (4 + 2)");
assert_eq!(eval, Ok(12.));
}
clc-gql
exposes clc with graphql api.
To run clc-gql
with docker ,execute the following command.
docker run --rm --publish 9696:9696 ghcr.io/ymgyt/clc-gql:latest
then access
curl \
-X POST \
-d '{"query": "{ eval(expression: \"100 - 1\") }"}' \
http://localhost:9696/graphql
{"data":{"eval":99.0}}
playground can be accessed from localhost:9696/graphsql/playground
.
This project is available under the terms of either the Apache 2.0 license or the MIT license.