{"id":49143613,"url":"https://github.com/cilladev/xlstream","last_synced_at":"2026-04-24T04:00:53.468Z","repository":{"id":352323537,"uuid":"1213620525","full_name":"cilladev/xlstream","owner":"cilladev","description":"Fastest streaming Excel formula evaluation engine  - no dependency graph, no full-workbook buffering. Rust core with Python bindings","archived":false,"fork":false,"pushed_at":"2026-04-23T02:48:54.000Z","size":793,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T03:02:32.057Z","etag":null,"topics":["excel","python","rust"],"latest_commit_sha":null,"homepage":"https://xlstream.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cilladev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/roadmap/README.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-17T15:22:54.000Z","updated_at":"2026-04-23T02:07:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"a2523350-d3e2-483c-bc1a-cf4bc12f1f10","html_url":"https://github.com/cilladev/xlstream","commit_stats":null,"previous_names":["cilladev/xlstream"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/cilladev/xlstream","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cilladev%2Fxlstream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cilladev%2Fxlstream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cilladev%2Fxlstream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cilladev%2Fxlstream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cilladev","download_url":"https://codeload.github.com/cilladev/xlstream/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cilladev%2Fxlstream/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32208477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T03:15:14.334Z","status":"ssl_error","status_checked_at":"2026-04-24T03:15:11.608Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["excel","python","rust"],"created_at":"2026-04-22T02:01:17.180Z","updated_at":"2026-04-24T04:00:53.422Z","avatar_url":"https://github.com/cilladev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xlstream\n\n![CI](https://github.com/cilladev/xlstream/actions/workflows/ci.yml/badge.svg)\n![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)\n\n`xlstream` is a **streaming Excel formula evaluation engine** written in Rust, with Python bindings. It reads `.xlsx` files row-by-row, evaluates formulas in a single (or two-pass) streaming traversal (no dependency graph, no full-workbook buffering), and writes the results to a new `.xlsx` — all in bounded memory regardless of file size.\n\nWe are not building a general-purpose spreadsheet engine. We are building the *fastest, leanest* Excel formula evaluator — supporting ~465 of Excel's ~500 functions, everything that fits a streaming architecture.\n\n## Performance\n\n**425x faster** on the same workbook. [Full benchmarks](benchmarks/reports)\n\n|                     | xlstream           | formualizer           |\n| ------------------- | ------------------ | --------------------- |\n| 700k rows x 20 cols | **48s**            | 5h 40m                |\n| Peak memory         | **734 MB**         | 3.3 GB                |\n| Architecture        | Streaming (2-pass) | Full dependency graph |\n\n\n## Supported functions\n\n113 functions + 13 operators across 9 categories. [Full list with cross-reference](docs/functions.md).\n\n| Category   | Count | Examples                                          |\n| ---------- | ----- | ------------------------------------------------- |\n| Operators  | 13    | `+`, `-`, `*`, `/`, `^`, `\u0026`, `%`, comparisons    |\n| Logical    | 11    | IF, IFS, SWITCH, IFERROR, AND, OR, NOT, XOR       |\n| Aggregates | 15    | SUM, SUMIF, SUMIFS, AVERAGE, COUNTIF, MEDIAN      |\n| Lookups    | 7     | VLOOKUP, XLOOKUP, INDEX/MATCH, HLOOKUP, CHOOSE    |\n| Text       | 19    | LEFT, UPPER, TRIM, CONCAT, TEXT, FIND, SUBSTITUTE |\n| Date       | 12    | TODAY, YEAR, EDATE, EOMONTH, DATEDIF, NETWORKDAYS |\n| Math       | 23    | ROUND, MOD, ABS, SQRT, LOG, SIN, PI, FLOOR        |\n| Info       | 10    | ISNUMBER, ISTEXT, ISERROR, ISBLANK, ISREF, TYPE   |\n| Financial  | 6     | PMT, PV, FV, NPV, IRR, RATE                       |\n\nExcel has ~500 functions. ~465 are streaming-compatible. We're adding more each release — see the [roadmap](docs/roadmap/README.md).\n\n\n## Install\n\n```bash\npip install xlstream\n```\n\n## Usage\n\n### Python\n\n```python\nimport xlstream\n\nresult = xlstream.evaluate(\"input.xlsx\", \"output.xlsx\")\n# {'rows_processed': 700001, 'formulas_evaluated': 7000000, 'duration_ms': 48000}\n\n# Parallel (row-sharded across cores)\nresult = xlstream.evaluate(\"input.xlsx\", \"output.xlsx\", workers=8)\n```\n\n### CLI\n\n```bash\nxlstream evaluate input.xlsx -o output.xlsx -w 8 --verbose\n```\n\n### Rust\n\n```rust\nlet summary = xlstream_eval::evaluate(\u0026input, \u0026output, Some(8))?;\n```\n\n## Error handling\n\n```python\ntry:\n    xlstream.evaluate(\"input.xlsx\", \"output.xlsx\")\nexcept xlstream.UnsupportedFormula as e:\n    print(e)  # names the cell, formula, and reason\nexcept xlstream.FormulaParseError as e:\n    print(e)\nexcept OSError as e:\n    print(e)  # file not found, corrupt xlsx\n```\n\n\n## License\n\nDual-licensed under Apache-2.0 or MIT, at your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcilladev%2Fxlstream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcilladev%2Fxlstream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcilladev%2Fxlstream/lists"}