oppiliappan
eva
Rust

a calculator REPL, similar to bc(1)

Last updated Jul 3, 2026
911
Stars
33
Forks
13
Issues
0
Stars/day
Attention Score
41
Language breakdown
No language data available.
β–Έ Files click to expand
README

heroimg.png

eva

simple calculator REPL, similar to bc(1), with syntax highlighting and persistent history

eva.png

installation

  • Homebrew
$ brew install eva
  • crates.io
$ cargo install eva
  • manual
$ git clone https://github.com/nerdypepper/eva
$ cd eva
$ cargo run

usage

eva 0.3.1
NerdyPepper <akshayoppiliappan@gmail.com>
Calculator REPL similar to bc(1)

USAGE: eva [OPTIONS] [INPUT]

ARGS: <INPUT> Optional expression string to run eva in command mode

OPTIONS: -b, --base <RADIX> Radix of calculation output (1 - 36) [default: 10] -f, --fix <FIX> Number of decimal places in output (1 - 64) [default: 10] -h, --help Print help information -r, --radian Use radian mode -V, --version Print version information

type out an expression and hit enter, repeat.

> 1 + sin(30)
1.5
> floor(sqrt(3^2 + 5^2))
5
> 5sin(45) + cos(0)
4.53553

updating

- crates.io

$ cargo install eva --force

- manual

$ cargo install --force --path /path/to/eva

operators

- binary operators: + - / ^ * - unary operators: + -

constants

some constants available in rust standard library.

e      pi

examples:

pi * 5^2  # Ο€rΒ²

functions

all trigonometric functions expect input in degrees.

1 argument:
sin    cos     tan    csc    sec    cot    sinh   cosh   tanh
asin   acos    atan   acsc   asec   acot   ln     log2   log10
sqrt   ceil    floor  abs

2 arguments: log nroot

deg(x) - convert x to degrees rad(x) - convert x to radians

examples:

sqrt(sin(30)) # parentheses are mandatory for functions

log10100 # no log10(100) # yes

log(1, 10) # function with two arguments

quality of life features

- auto insertion of * operator

>12sin(45(2))             # 12  sin(45  (2)) 12

- auto balancing of parentheses

>ceil(sqrt(3^2 + 5^2      # ceil(sqrt(3^2 + 5^2)) 6

- use previous answer with _

> sin(pi) 0.0548036650 > _^2 0.0030034417 >

  • super neat error handling
> 1 + ln(-1)
Domain Error: Out of bounds!

- syntax highlighting

todo

- add support for variables (pi, e, _ (previous answer)) - syntax highlighting - multiple arg functions - screenshots - create logo - unary operators (minus, plus) - add detailed error handler - add unit tests - lineditor with syntax highlighting - add more functions

contributors

the rust community has helped eva come a long way, but these devs deserve a special mention for their contributions:

Ivan Tham Milan Marković asapokl

πŸ”— More in this category

Β© 2026 GitRepoTrend Β· oppiliappan/eva Β· Updated daily from GitHub