{"id":11863031,"url":"https://github.com/oppiliappan/eva","last_synced_at":"2025-12-12T02:35:11.110Z","repository":{"id":39543520,"uuid":"175997285","full_name":"oppiliappan/eva","owner":"oppiliappan","description":"a calculator REPL, similar to bc(1)","archived":false,"fork":false,"pushed_at":"2024-01-15T03:51:57.000Z","size":186,"stargazers_count":865,"open_issues_count":14,"forks_count":32,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-14T06:16:26.740Z","etag":null,"topics":["calculator","cli","hacktoberfest","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oppiliappan.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-16T16:38:07.000Z","updated_at":"2025-05-09T18:33:57.000Z","dependencies_parsed_at":"2022-07-04T10:42:57.715Z","dependency_job_id":"78a25c1a-96b1-42c9-bde1-1cce2a607ae0","html_url":"https://github.com/oppiliappan/eva","commit_stats":{"total_commits":181,"total_committers":18,"mean_commits":"10.055555555555555","dds":"0.45856353591160226","last_synced_commit":"37e29774befd30ac36ed3f1063a413c2b03a8533"},"previous_names":["oppiliappan/eva","nerdypepper/eva"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oppiliappan%2Feva","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oppiliappan%2Feva/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oppiliappan%2Feva/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oppiliappan%2Feva/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oppiliappan","download_url":"https://codeload.github.com/oppiliappan/eva/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478193,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calculator","cli","hacktoberfest","rust"],"created_at":"2024-06-29T02:16:09.545Z","updated_at":"2025-12-12T02:35:11.023Z","avatar_url":"https://github.com/oppiliappan.png","language":"Rust","funding_links":[],"categories":["Rust","cli"],"sub_categories":[],"readme":"\n![heroimg.png](https://u.peppe.rs/6G.png)\n\n# eva\n\nsimple calculator REPL, similar to `bc(1)`, with syntax highlighting and persistent history\n\n![eva.png](https://u.peppe.rs/kP.png)\n\n### installation\n\n- Homebrew\n```shell\n$ brew install eva\n```\n\n- crates.io\n```shell\n$ cargo install eva\n```\n\n- manual\n```shell\n$ git clone https://github.com/nerdypepper/eva\n$ cd eva\n$ cargo run\n```\n\n### usage\n\n```shell\neva 0.3.1\nNerdyPepper \u003cakshayoppiliappan@gmail.com\u003e\nCalculator REPL similar to bc(1)\n\nUSAGE:\n    eva [OPTIONS] [INPUT]\n\nARGS:\n    \u003cINPUT\u003e    Optional expression string to run eva in command mode\n\nOPTIONS:\n    -b, --base \u003cRADIX\u003e    Radix of calculation output (1 - 36) [default: 10]\n    -f, --fix \u003cFIX\u003e       Number of decimal places in output (1 - 64) [default: 10]\n    -h, --help            Print help information\n    -r, --radian          Use radian mode\n    -V, --version         Print version information\n\n```\n\ntype out an expression and hit enter, repeat.\n\n```shell\n\u003e 1 + sin(30)\n1.5\n\u003e floor(sqrt(3^2 + 5^2))\n5\n\u003e 5sin(45) + cos(0)\n4.53553\n```\n\n### updating\n\n - crates.io\n ```shell\n$ cargo install eva --force\n ```\n\n - manual\n```shell\n$ cargo install --force --path /path/to/eva\n```\n\n### operators\n\n - binary operators: `+ - * / ^ **`\n - unary operators: `+ -`\n\n### constants\n\nsome constants available in rust standard library.\n\n```\ne      pi\n```\n\nexamples:\n```\npi * 5^2  # πr²\n```\n\n### functions\n\nall trigonometric functions expect input in degrees.\n\n```\n1 argument:\nsin    cos     tan    csc    sec    cot    sinh   cosh   tanh\nasin   acos    atan   acsc   asec   acot   ln     log2   log10\nsqrt   ceil    floor  abs\n\n2 arguments:\nlog    nroot\n\ndeg(x) - convert x to degrees\nrad(x) - convert x to radians\n```\n\nexamples:\n```\nsqrt(sin(30)) # parentheses are mandatory for functions\n\nlog10100      # no\nlog10(100)    # yes\n\nlog(1, 10)    # function with two arguments\n```\n\n### quality of life features\n\n - auto insertion of `*` operator\n```\n\u003e12sin(45(2))             # 12 * sin(45 * (2))\n12\n```\n\n - auto balancing of parentheses\n```\n\u003eceil(sqrt(3^2 + 5^2      # ceil(sqrt(3^2 + 5^2))\n6\n```\n\n - use previous answer with `_`\n```\n\u003e sin(pi)\n0.0548036650\n\u003e _^2\n0.0030034417\n\u003e\n```\n\n- super neat error handling\n```\n\u003e 1 + ln(-1)\nDomain Error: Out of bounds!\n```\n\n - syntax highlighting\n\n### todo\n\n - ~~add support for variables (pi, e, _ (previous answer))~~\n - ~~syntax highlighting~~\n - ~~multiple arg functions~~\n - ~~screenshots~~\n - ~~create logo~~\n - ~~unary operators (minus, plus)~~\n - ~~add detailed error handler~~\n - ~~add unit tests~~\n - ~~lineditor~~ with syntax highlighting\n - ~~add more functions~~\n\n### contributors\n\nthe rust community has helped eva come a long way, but these devs deserve a\nspecial mention for their contributions:\n\n[Ivan Tham](https://github.com/pickfire)  \n[Milan Marković](https://github.com/hepek)  \n[asapokl](https://github.com/kzoper)  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foppiliappan%2Feva","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foppiliappan%2Feva","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foppiliappan%2Feva/lists"}