Skip to main content

CellRune

CellRune is a Rust library for bounded XLSX/XLSM reading and deterministic formula calculation. It keeps the workbook read from disk immutable, returns recalculated values in a separate snapshot, and can retain an exact package backing for explicit round-trip writing.

Rust installation

The CellRune Rust crate 0.1.3 requires Rust 1.88 or newer.

cargo add cellrune@0.1.3

Or add the dependency directly:

[dependencies]
cellrune = "0.1.3"

Features

  • reads .xlsx files from paths, byte slices, or Read + Seek streams;
  • opens package-backed .xlsx and .xlsm documents with exact SHA-256 identity and bounded round-trip preservation;
  • preserves sheet order, sparse cells, formulas, saved results, defined names, and relevant number-format metadata;
  • expands shared formulas while preserving absolute and relative references;
  • returns typed formula values and stable per-cell calculation issues in one result snapshot;
  • reports normalized per-workbook function demand and exposes the implemented function catalog;
  • applies configurable limits to ZIP, XML, workbook, formula, dependency, text, and array work;
  • never executes macros, never follows external links, and never reads the host clock for TODAY() or NOW();
  • returns stable error and issue codes for programmatic handling;
  • materializes recalculated typed results into existing .xlsx/.xlsm packages with strict or explicit cache-invalidation policies;
  • creates canonical .xlsx workbooks and applies typed cell, formula, sheet, name, number-format, date-system, and calculation-property edits through WorkbookDraft;
  • reads, queries, preserves, and explicitly authors SpreadsheetML phonetic annotations and default frozen panes without mixing presentation state into formula calculation;
  • exposes the same versioned read/edit/calculate/write contract through typed Python and Node.js/TypeScript native packages;
  • supports atomic typed edit batches, persistent parsed/dependency state, safe incremental recalculation, bounded result deltas, cooperative cancellation, and stale-result rejection;
  • provides a local stdio MCP server with high-level open, inspect, edit, recalculate, range-read, delta, and verified Save As tools over the same interop session; and
  • raw-copies unchanged package entries without exposing ZIP or XML implementation types.

Usage

use cellrune::{
    CalculationCellResult, CalculationOptions, ReadOptions, calculate_workbook, read_xlsx_path,
};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let workbook = read_xlsx_path("input.xlsx", ReadOptions::default())?;
    let calculation = calculate_workbook(&workbook, CalculationOptions::default());

    for (cell, result) in calculation.cells() {
        match result {
            CalculationCellResult::Value(value) => println!("{cell:?}: {value:?}"),
            CalculationCellResult::Unavailable(issue) => {
                eprintln!("{cell:?}: {}", issue.code().as_str());
            }
        }
    }

    Ok(())
}

Reading and calculation are separate operations. calculate_workbook does not modify the source WorkbookSnapshot or its saved XLSX results. It attempts every formula in the workbook: successfully calculated cells contain a typed Value, while a cell that cannot be calculated contains a structured Unavailable(CalculationIssue). One unavailable formula does not suppress independent results; dependent formulas report BlockedByUpstream when applicable. Volatile functions require deterministic inputs through CalculationOptions: with_today_serial for TODAY() and with_now_serial for NOW(). Use with_arithmetic_semantics and with_financial_solver_semantics to opt into the raw IEEE-754 and extended-search behavior shipped through 0.1.2; the defaults select Excel-compatible cancellation and Microsoft's function-specific solver budgets. Use supported_function_catalog for the build's exact function surface and scan_function_usage to summarize the functions used by a workbook. scan_formula_capabilities remains available as an optional static inventory for migration planning and user-interface reporting; calculation does not require it. INDEX follows Excel's zero-index reference behavior: a zero row or column selects the complete corresponding column or row, and zero for both selects the complete input range. Scalar formulas apply legacy implicit intersection, while array formulas can materialize the selected rectangle.

For repeated programmatic edits, use WorkbookCalculationSession instead of rebuilding stateless calculation state after every cell:

use cellrune::{
    CalculationOptions, CancellationToken, CellAddress, CellValue, EditBatch, FiniteNumber,
    RecalculationMode, SheetId, WorkbookCalculationSession, WorkbookChange,
};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut session = WorkbookCalculationSession::create();
    let sheet = SheetId::new(1)?;
    let receipt = session.apply_changes(
        0,
        EditBatch::new([WorkbookChange::set_cell_value(
            sheet,
            CellAddress::from_a1("A1")?,
            CellValue::Number(FiniteNumber::new(42.0)?),
        )]),
    )?;
    let delta = session.recalculate(
        RecalculationMode::Auto,
        CalculationOptions::default(),
        CancellationToken::new(),
    )?;
    assert_eq!(delta.result_revision(), receipt.result_revision());

    Ok(())
}

Auto evaluates a proven dirty subset and falls back to the same full-workbook calculation semantics when formula, name, sheet, option, dynamic-reference, or spill topology is uncertain. Forced incremental mode fails closed instead of guessing. Sessions use optimistic semantic revisions for atomic edits, retain bounded result-delta history, and reject stale calculations. A batch whose accepted operations make no semantic change keeps the current revision, topology, and installed calculation instead of forcing a redundant recalculation. Long-running work can be prepared outside the session lock with prepare_recalculation, cancelled through a request-owned CancellationToken, and installed only if its source revision is still current.

open_xlsx_document_* retains the exact input package for writing. write_recalculated_xlsx_bytes, write_recalculated_xlsx, and write_recalculated_xlsx_path bind a calculation to that exact input, update typed formula caches, remove stale calculation chains, preserve unrelated package content, and reopen the output before reporting success. Strict mode rejects incomplete calculations without producing an artifact; cache invalidation is an explicit opt-in policy. write_preserved_xlsx_bytes remains available for an unchanged preservation copy.

WorkbookDraft::new creates a canonical workbook, while WorkbookDraft::from_document retains the source package for preservation-aware edits. Calculate the draft's current workbook() and pass both objects to write_xlsx_draft_bytes, write_xlsx_draft, or write_xlsx_draft_path. A mutation that changes workbook semantics advances the semantic revision, so a calculation made before the latest effective edit is rejected. An accepted no-op keeps the revision unchanged. Path writes are Save As operations and never replace an existing destination unless replacement is explicitly enabled. Canonical drafts can author dynamic-array formulas with WorkbookDraft::set_cell_dynamic_formula; calculation resolves their spill region, detects occupied targets, and materializes followers for writing. Existing document-backed dynamic formulas can be recalculated without changing their metadata, while adding or replacing one is rejected until source metadata-index merging is implemented.

Package-backed documents expose phonetic annotations and frozen panes through XlsxDocument::presentation(). WorkbookDraft provides atomic set_annotated_text, set_phonetics, clear_phonetics, set_frozen_pane, and clear_frozen_pane mutations. Phonetic base ranges are zero-based half-open UTF-16 code-unit ranges. Presentation-only changes have a separate revision and reuse an otherwise current calculation. Source rich-text phonetic editing, RTL pane authoring, and PHONETIC() calculation remain explicit unsupported boundaries.

Runnable examples are shipped in the crate package under examples/ and live at crates/cellrune/examples/ in this repository. From the repository root, run one with cargo run -p cellrune --example <name> -- [arguments]; from an extracted crate package, omit -p cellrune. See the public llms.txt reference for the complete example inventory and a condensed public API reference.

Language bindings

Python uses the mainstream PyO3 + maturin native-extension path. Node.js and TypeScript use napi-rs over stable Node-API with Promise-backed native work and exact-version platform packages. Neither binding requires a consumer Rust toolchain when installed from a wheel or prebuilt npm artifact.

The 0.1.3 release line targets Python 3.10 through 3.14 and Node.js 22 or newer. Install the bindings with:

python -m pip install "cellrune==0.1.3"
npm install "@cellrune/node@0.1.3"

The bindings expose the same versioned read, edit, calculate, and write contract. Native package availability remains platform-specific; package managers must select a wheel or exact-version npm platform package compatible with the current runtime.

Python workbooks are context managers:

from cellrune import Workbook

with Workbook.create() as workbook:
    workbook.set_number("Sheet1", "A1", 41.0)
    workbook.set_formula("Sheet1", "B1", "=A1+1")
    workbook.calculate()
    # 0.1.2-compatible calculation remains available when required:
    workbook.calculate(
        arithmetic_semantics="ieee_754",
        financial_solver_semantics="extended_search",
    )
    workbook.save("output.xlsx")

In a Node.js ES module, close the workbook in finally:

import { Workbook } from "@cellrune/node";

const workbook = Workbook.create();
try {
  workbook.setNumber("Sheet1", "A1", 41);
  workbook.setFormula("Sheet1", "B1", "=A1+1");
  await workbook.calculate();
  await workbook.calculate({
    arithmeticSemantics: "ieee_754",
    financialSolverSemantics: "extended_search",
  });
  await workbook.save("output.xlsx");
} finally {
  workbook.close();
}

Python and Node.js close() calls are idempotent. Once close() returns, the binding-owned native session has been released. An active calculation is cooperatively cancelled, and subsequent operations fail with the stable interop.session.closed code.

Local MCP

cellrune-mcp is a local stdio-only MCP 2025-11-25 server for AI hosts. It exposes a finite set of high-level workbook workflow tools; spreadsheet functions remain formulas inside the workbook and are not registered one by one as MCP tools. Start it with one or more explicit filesystem roots:

cargo run --locked -p cellrune-mcp -- \
  --root /absolute/path/to/approved/workbooks

Its 11 tools are workbook_create, workbook_open, workbook_close, workbook_summary, workbook_read_range, workbook_function_usage, workbook_scan_capabilities, workbook_apply_changes, workbook_recalculate, workbook_changes_since, and workbook_save_as.

The server also publishes read-only JSON resources at cellrune://support/functions and the cellrune://sessions/{session_id}/summary resource template. Operators can set --max-sessions, --session-ttl-seconds, --max-response-bytes, --max-workbook-bytes, and --log-level; run cellrune-mcp --help for their defaults. Values outside the server's compiled policy limits are rejected at startup.

cellrune-mcp is not published to a package registry. Prebuilt bundles for Linux, macOS, and Windows are attached to each GitHub release, alongside their license materials and build provenance.

An MCP client can launch a release binary with configuration equivalent to:

{
  "mcpServers": {
    "cellrune": {
      "command": "/absolute/path/to/cellrune-mcp",
      "args": ["--root", "/absolute/path/to/approved/workbooks"]
    }
  }
}

The server canonicalizes configured roots at startup. Every workbook path supplied to a tool must be absolute and resolve inside one of those roots. The server bounds workbook/session/response resources, writes protocol traffic only to stdout, writes diagnostics only to stderr, and never provides a remote transport. Inputs are opened through an approved-root capability and read from the same file handle under the configured archive-byte ceiling. Existing destinations are protected unless the server starts with --allow-overwrite and a request also sets replace_existing. Save As retains an open destination-directory capability from validation through atomic installation, so renaming or replacing the ambient parent path cannot redirect a write outside the approved root. Resource lists use byte-bounded cursor pagination. At session capacity, create/open may evict the least-recently-used idle session; active sessions are never evicted. Give the server the narrowest practical root; another process with write access inside that root can still change workbook inputs and contents.

Tool results carry untrusted content. Cell text, sheet names, and defined names come from the workbook and are returned verbatim, so a crafted workbook can place text that reads as an instruction into a tool result. That is the same trust boundary as any other document a model reads: the server does not rewrite workbook content, and the consuming application is responsible for treating tool output as data rather than as instructions.

To inspect the local server before client integration:

npx --yes @modelcontextprotocol/inspector@1.0.0 \
  cargo run --locked -p cellrune-mcp -- \
  --root /absolute/path/to/approved/workbooks

Scope

CellRune supports ordinary Transitional SpreadsheetML workbooks and a scoped set of Excel formula syntax and functions. Unsupported formulas are returned as explicit per-cell calculation issues; other formulas continue to calculate.

The following are outside the current scope:

  • .xls, .xlsb, .ods, and CSV;
  • macro, add-in, external-workbook, query, or data-connection execution;
  • table structured references and 3-D references;
  • spill postfix references such as A1#, general LAMBDA, and data-table calculation; and
  • iterative calculation and automatic host-time inputs.

docs/NUMERICS.md records where calculated values differ from Excel and why, and documents the two calculation options added in 0.1.3: ArithmeticSemantics and FinancialSolverSemantics, which default to Excel's behavior and can be set to Ieee754 and ExtendedSearch for what 0.1.2 did.

Verification

The conformance/ tree carries expectation matrices — every literal, every formula, and the value a recorded oracle saved for that formula — and cargo test reconstructs each matrix, calculates it, and compares the results against the oracle.

The first matrix is the Apache POI FormulaEvalTestData corpus (Apache-2.0): 1,295 formula cases against the workbook's saved Microsoft Excel 2013 calculation cache. 1,290 match within a scale-relative 1e-8; 5 are documented divergences where the 2013-era cache predates current Excel behavior. Divergences are enforced in both directions, so neither side of one can change without the test failing.

License

CellRune is dual-licensed under either the MIT License or the Apache License, Version 2.0, at your option. Apache-2.0 carries an explicit patent grant; MIT does not. Choosing either one satisfies the whole of CellRune's terms, and every distributed artifact carries both texts.

Releases 0.1.0 through 0.1.2 were published under the MIT License alone; the dual license applies from the next release onward. Dependency license information is provided in THIRD_PARTY_LICENSES.md.

Unless you state otherwise, a contribution you submit is licensed under the same dual terms.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cellrune-0.1.3.tar.gz (406.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cellrune-0.1.3-cp314-cp314-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.14Windows x86-64

cellrune-0.1.3-cp314-cp314-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

cellrune-0.1.3-cp314-cp314-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cellrune-0.1.3-cp313-cp313-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86-64

cellrune-0.1.3-cp313-cp313-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

cellrune-0.1.3-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cellrune-0.1.3-cp312-cp312-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86-64

cellrune-0.1.3-cp312-cp312-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

cellrune-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cellrune-0.1.3-cp311-cp311-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86-64

cellrune-0.1.3-cp311-cp311-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

cellrune-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cellrune-0.1.3-cp310-cp310-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86-64

cellrune-0.1.3-cp310-cp310-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

cellrune-0.1.3-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file cellrune-0.1.3.tar.gz.

File metadata

  • Download URL: cellrune-0.1.3.tar.gz
  • Upload date:
  • Size: 406.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cellrune-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c2cbc3c6d34e3694e17adc6768bf0e6d771bf38e92e089270381af4e5f3b84e5
MD5 0b1d3cb94ea2302c09f4e311d25452ee
BLAKE2b-256 484c8b3f4d04932e7e9e4d7e8a5209bbbd401df5fa5c4ce9c47e4061e900933a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3.tar.gz:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cellrune-0.1.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 10d533f7a8c9b88f2f7da772cce2dc76538cbe46e430e21f13a348f7260b6e1e
MD5 ac513770c8049f4a8cc576ad03c649c3
BLAKE2b-256 3258c9d9d3454a2a1ccb04b556e7c8e916a2ecf0a8a99a082737d50aa78da97c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp314-cp314-win_amd64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ce632dbc83dfc54fccc79d8165336fb725178035c902f66333c286467b27cacd
MD5 16f7fc9e452621ba1dd3bdb859f12d1e
BLAKE2b-256 6eea71eb89b7893581d3763a28c77387204da96c0fb01513ff33d589a3b8b3be

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3cddbb0c8bfd126e57674196a2e6311c0c9a0c6a5380f74749d38bf28ecf8420
MD5 28e6e69bc709465e5224b32e40392f71
BLAKE2b-256 ff2da93da8b64fa3bed5adaf3a8be15ed35bfaa1b7203a00d4287e80cb6e6f23

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cellrune-0.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e88e51818d3ad5b3460a92b5fa893ce7cfcbfb92f1f7196e20cdfef6003b89cd
MD5 ea2d528c8f4629f08cd5063a47e25975
BLAKE2b-256 48419554eac2d2c037626948551b8880dde5d93eef708a21ace0765b6c8375d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp313-cp313-win_amd64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9b8cf6ad7b4e2157abc99f39306a039ddb653ff6a2032af6c021529c170eb376
MD5 f13098a46193fb6608af08d49825717f
BLAKE2b-256 e7590d6a28b6b54474626688f99bcc77c08501484739dc63238499d8029be2ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d16651d7ba9b906e8ece72743142d188af2c6fe5b84d4d2ceb97c34bccf9ea3f
MD5 00dddf25dc254fb93ba1dbd2478a35df
BLAKE2b-256 0847199d7aa55e8b00af11a69fa5ec76d2e58f760aa9d1ed231428568e73bc08

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cellrune-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 912dd5580f17c234d25adcfdee51759bfed9d8087c9ab0d35a9b14ae6cc2eefb
MD5 942636655df42e48faf455478be5f4ab
BLAKE2b-256 22d310363611bb8103357a8f309fcea4273081984d46b91d3f836aee5b58ad3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp312-cp312-win_amd64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2aca9c00069e195c36466f33eacb1347c7612e31fd434a7a118c335110dcabe1
MD5 d8aeb579ba1aea8bd545883b7711e507
BLAKE2b-256 6b1a2f18c3f5068909b9f1e25680c1bf74d6e0f9ee8b36e6ae27fb4b1e9562fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 499d30532785dd78ac930876304c2546498cbdec99f3745022d01809a57b12b7
MD5 92fb219b1f076eb18e29dccc5e349497
BLAKE2b-256 1fa779d36f7ee5d9de88a2c6d5f3f62340bb61f3f763eccd2b6198c118a0a67e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cellrune-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 809f05c7c877288c4cfaa44af17177c4511fd94d8f7259bf4526adc5971fd971
MD5 a7924121f1ef0b85a58ee36b6e139313
BLAKE2b-256 1156317ad01dfbf83dff898f750ad641d9ca2fbccfe6d9f89e8efb5393e190d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp311-cp311-win_amd64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 606c1169d75b67854c76e6ea4dc10f0f9d407f43e6099dee3186f3ffd77c93e1
MD5 593d0efdea531b69c77b1ef60018045d
BLAKE2b-256 758e4ceb09a6e400d8a520e4798024377b86b0890a69db40a111ec49181213c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6dc76b40711aa6d72b51cee8b354ca884c918c186565015752c5f1213b6c058
MD5 2291a1875b8e82a15a0c3cec842c1a2e
BLAKE2b-256 32222a362d38c40eba8556b8c31793b20a5ec0a22ebb52e51c618e26714a50b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cellrune-0.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f8e83837ee26495d7acbbef2c04c7fdeb23ddaff2768d228c2ad883eb328a01b
MD5 52078c387a455c22f268ca0af5392274
BLAKE2b-256 8121c2880b29337c313cb91458d02a959693a0750d5d0d4fa214eafedae93739

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp310-cp310-win_amd64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df25205b4a05e751a3fd51812205c16fdfd3139abc3528ab437d819ac7035510
MD5 d16ad1f323b57e647241f7918172e18e
BLAKE2b-256 886f4d75f163c27010ce14e4153d10d7bb22de9aa617adcb780b075e10ef2d01

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellrune-0.1.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37d238c4959097f8eefe1afa5642a8b0e9a338b210f3c6f318452857bf5f2dc3
MD5 ef8b10b54715ea62942facc9d25c3512
BLAKE2b-256 f2cbb3e43a32cde076dd9bf2440ae03f9178b25e402f30d83dc325cde41862d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on emulette/cellrune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.20

16 files

0.1.19

16 files

0.1.18

16 files

0.1.17

16 files

0.1.16

16 files

0.1.15

16 files

0.1.14

16 files

0.1.13

16 files

0.1.12

16 files

0.1.11

16 files

0.1.10

16 files

0.1.9

16 files

0.1.8

16 files

0.1.7

16 files

0.1.6

16 files

0.1.5

16 files

0.1.4

16 files

This release

0.1.3 This release

16 files

0.1.2

16 files

0.1.1

16 files

0.1.0

16 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page