2024-02-14 14:39:22 -07:00
2024-02-14 14:39:22 -07:00
2024-02-13 17:03:10 +01:00
2023-11-20 10:46:19 +01:00
2023-11-20 10:46:19 +01:00
2023-11-20 10:46:19 +01:00
2023-11-20 10:46:19 +01:00
2024-02-09 14:41:52 +01:00
2024-02-13 16:36:50 +01:00

📚 IronCalc

MIT licensed Apache 2.0 licensed Build Status Code coverage docs-badge Discord chat

IronCalc is a new, modern, work-in-progress spreadsheet engine and set of tools to work with spreadsheets in diverse settings.

This repository contains the main engine and the xlsx reader and writer.

Programmed in Rust, you will be able to use it from a variety of programming languages like Python, JavaScript (wasm), nodejs and possibly R, Julia or Go.

We will build different skins: in the terminal, as a desktop application or use it in you own web application.

🛠️ Building

cargo build --release

Testing, linting and code coverage

Testing:

cargo test

Linting:

make lint

Testing and linting:

make tests

Code coverage:

make coverage
cd target/coverage/html/
python -m http.server

🖹 API Documentation

Documentation might be generated with

$ cargo doc --no-deps

📝 ROADMAP

Warning

This is work-in-progress. IronCalc in developed in the open. Expect things to be broken and change quickly until version 0.5

Major milestones:

  • MVP, version 0.5.0: We intend to have a working version by mid March 2024 (version 0.5, MVP)
  • Stable, version 1.0.0 will come later in December 2024

MVP stands for Minimum Viable Product

Version 0.5 or MVP (15 March 2024)

Version 0.5 includes the engine, javascript and nodejs bindings and a web application

Features of the engine include:

  • Read and write xlsx files
  • API to set and read values from cells
  • Implemented 192 Excel functions
  • Time functions with timezones
  • Prepared for i18n but will only support English
  • Wide test coverage

UI features of the web application (backed by the engine):

  • Enter values and formulas. Browse mode
  • Italics, bold, underline, horizontal alignment
  • Number formatting
  • Add/remove/rename sheets
  • Copy/Paste extend values
  • Keyboard navigation
  • Delete/Add rows and columns
  • Resize rows and columns
  • Correct scrolling and navigation

Version 1.0 or Stable (December 2024)

Minor milestones in the ROADMAD for version 1.0.0 (engine and UI):

  • Implementation of arrays and array formulas
  • Formula documentation and context help
  • Merge cells
  • Pivot tables
  • Define name manager (mostly UI)
  • Update main evaluation algorithm with a support graph
  • Dynamic arrays (SORT, UNIQUE, ..)
  • Full i18n support with different locales and languages
  • Python bindings
  • Full test coverage

I will be creating issues during the first two months of 2024

Early testing

An early preview of the technology running entirely in your browser:

https://playground.ironcalc.com

License

Licensed under either of

at your option.

Description
No description provided
Readme 10 MiB
Languages
Rust 85%
TypeScript 13.9%
JavaScript 0.6%
Dockerfile 0.1%
Python 0.1%