Coder Social home page Coder Social logo

impossiblereality / siffra Goto Github PK

View Code? Open in Web Editor NEW
36.0 1.0 3.0 2.1 MB

A fast and accurate calculator app written in Rust

License: MIT License

HTML 0.24% Rust 72.97% Svelte 22.02% TypeScript 3.69% CSS 0.82% JavaScript 0.26%
calculator dimensional-analysis rust rust-lang tauri

siffra's Introduction

Siffra

Siffra is a beautiful, lightweight, fast, and accurate calculator with support for dimensional analysis. The project is currently in heavy development, and is not currently stable yet. However, it is usable.

Siffra screenshot

Installation

Prebuild Binaries

There are provided prebuilt binaries for all supported platforms in the Releases tab.

Building from source

To build Siffra from source, you will need to have the following installed:

Once you have these installed, you can clone the repository and build Siffra with the following commands:

bun install
bun run tauri build

You will find the built binary in the src-tauri/target/release/bundle directory.

note: Siffra currently only officially supports macOS due to testing limitations, but I am working on adding support for Linux and Windows. Please open an issue if you have any problems running Siffra on your platform.

Planned Features

  • Basic calculator functionality
  • Basic natural language support
  • Syntax highlighting
  • Variables support
  • Dimensional analysis
  • Unit conversion
    • Basic units
    • Dimensions w/ multiple units + exponents (ie. m/s^2)
    • Derived units (ie. Jules, Newtons, etc.)
    • Absolute units (ie. Temperature, time/date, etc.)
    • Stoichiometry
    • Full support for all SI units (including derived)
    • Currency/Stock units
  • Improved syntax + error handling
  • Support for saving calculations + multi-window support
  • Custom defined functions
  • Preferences page
  • Plugin + theme system
  • CAS support
  • Graphing

Contributing

Because Siffra is still under heavy development, I am not currently accepting contributions. However, once the project is more stable, I will be accepting contributions. Please do, however, feel free to open an issue if you find a bug or have a feature request.

Supporting the project

Unlike other calculators that provide similar functionality, Siffra is open-source, which also means I am unable to make a profit off of it. If you would like to support my future work, you can do so by buying me a coffee using the button below. Thank you!

Buy Me A Coffee

License

Siffra is licensed under the MIT License

siffra's People

Contributors

dre-bk201 avatar impossiblereality avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

siffra's Issues

Cursor goes out of sync on double newline [windows]

Describe the bug
Siffra_gK3YFKFEKy

To Reproduce
Steps to reproduce the behavior:

  1. While on a newline (without text), press enter again and start typing.

Expected behavior
expected

Desktop (please complete the following information):

  • OS: Windows
  • Version: 11

Additional context
This is likely an issue with how windows webview parses html when contenteditable is enabled. Tested on linux and it works.

Currency Units

Tracking issue for currency units (e.g. USD, ASD, YEN, etc.)

Saving + Multiple Windows

Tracking issue for allowing saving of calculations and having multiple windows open at the same time.

declaring custom functions

Is your feature request related to a problem? Please describe.
Well, declaring custom variables its fine, but I noticed that I can't declare custom functions.

like in the image:
image

Describe the solution you'd like
Possibility to create custom functions to optimize productivity by making calculations.

Describe alternatives you've considered
Maybe using some syntax like the functional programming languages.

Additional context
Some syntax concepts:
image

Better documentation and an install script

Basically make a script so that you dont have to figure out too much stuff like installing bun and then tauri private key. A bit of fuss. But with a install script it will be much more easier! So basically a script can be implemented in bash to check if rust is installed if not then install it. same with bun. And all the bun install stuff is good but not too user friendly so you can make the script move the binary file to either local or global PATH. I can help with bash scripting if needed :DD Will try to make a PR soon if I manage to do it

Derived Units

Tracking issue for derived units (e.g. litres, volts, etc.)

update loop

image
this pops up - click update - window closes - again

UI input offset (windows)

Describe the bug
When I press some enter to create spaces between expressions, the input doesn't align with the text

To Reproduce
Steps to reproduce the behavior:

  1. Open Siffra.
  2. Make some calcs.
  3. Press 2 enters
  4. Write anything.

Expected behavior
the input is expected to be aligned with the text.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows NT
  • Version 0.2.2

Additional context
None

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.