ironcalc/IronCalc
ironcalc/IronCalc has 4,253 GitHub stars and 224 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 08:28 UTC. Last push 2026-11-02.
Main engine of the IronCalc ecosystem
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalIronCalc
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 your own web application.
Docker
If you have docker installed just run:
docker compose up --build
head over to http://localhost:2080 to test the application.
Building
cargo build --release
Testing, linting and code coverage
Test are run automatically and test coverage can always be found in codecov
If you want to run the tests yourself:
make tests
Note that this runs unit tests, integration tests, linter tests and formatting tests.
If you want to run the code coverage yourself:
make coverage
cd target/coverage/html/
python -m http.server
API Documentation
Documentation is published at: https://docs.rs/ironcalc/latest/ironcalc/
It might be generated locally
$ make docs
$ cd target/doc
$ python -m http.server
And visit http://0.0.0.0:8000/ironcalc/
Simple example
Add the dependency to Cargo.toml:
[dependencies]
ironcalc = { git = "https://github.com/ironcalc/IronCalc", version = "0.8"}
And then use this code in main.rs:
use ironcalc::{
base::{expressions::utils::number_to_column, Model},
export::save_to_xlsx,
};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut model = Model::new_empty("hello-calc.xlsx", "en", "UTC", "en")?;
// Adds a square of numbers in the first sheet
for row in 1..100 {
for column in 1..100 {
let value = row * column;
model.set_user_input(0, row, column, format!("{}", value));
}
}
// Adds a new sheet
model.add_sheet("Calculation")?;
// column 100 is CV
let last_column = number_to_column(100).unwrap();
let formula = format!("=SUM(Sheet1!A1:{}100)", last_column);
model.set_user_input(1, 1, 1, formula);
// evaluates
model.evaluate();
// saves to disk
save_to_xlsx(&model, "hello-calc.xlsx")?;
Ok(())
}
See more examples in the examples folder of the xlsx crate.
ROADMAP
See https://github.com/ironcalc
Early testing
An early preview of the technology running entirely in your browser:
Collaborators needed!. Call to action
We don't have a vibrant community just yet. This is the very stages of the project. But if you are passionate about code with high standards and no compromises, if you are looking for a project with high impact, if you are interested in a better, more open infrastructure for spreadsheets, whether you are a developer (rust, python, TypeScript, electron/tauri/anything else native app, React, you name it), a designer, an Excel power user who wants features, a business looking to integrate a MIT/Apache licensed spreadsheet in your own SaaS application join us!
The best place to start will be to join or discord channel or send us an email at [email protected].
Many have said it better before me:
Folks wanted for hazardous journey. Low wages, bitter cold, long hours of complete darkness. Safe return doubtful. Honour and recognition in event of success.
License
Licensed under either of
at your option.
IronCalc bundles locale data derived from Unicode CLDR,
redistributed under the Unicode License v3; the notice is in
base/THIRD-PARTY-NOTICES.md. The npm packages
@ironcalc/wasm and @ironcalc/wasm-xlsx ship a THIRD-PARTY-NOTICES.md
listing the licenses of every crate compiled into the WebAssembly binary.
The web fonts in the repository (Inter, Mozilla Headline) are under the SIL
Open Font License 1.1; a copy sits next to each set of font files.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in IronCalc by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Explore related projects
awesome-selfhosted/awesome-selfhosted
A list of Free Software network services and web applications which can be hosted on your own servers
335,152 starsimmich-app/immich
High performance self-hosted photo and video management solution.
118,481 starsStirling-Tools/Stirling-PDF
#1 PDF Application on GitHub that lets you edit PDFs on any device anywhere
95,961 starslouislam/uptime-kuma
A fancy self-hosted monitoring tool
93,358 stars