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.12 requires Rust 1.88 or newer.

cargo add cellrune@0.1.12

Or add the dependency directly:

[dependencies]
cellrune = "0.1.12"

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;
  • exposes merged ranges and validated worksheet-owned Excel tables, including stable table and column IDs, complete filter/sort/formula/style metadata, and case-insensitive lookup indexes;
  • resolves typed multi-area, 3-D, structured table, current-row, and spill references under cumulative reference and dependency budgets;
  • inspects workbook and sheet-local defined names without running a calculation session, preserving rectangular, 3-D, ordered multi-area, empty, dynamic, external, invalid, and unsupported results;
  • 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;
  • evaluates first-class and defined-name LAMBDA callables, including immediate invocation, ISOMITTED, MAP, BYROW, BYCOL, REDUCE, SCAN, and MAKEARRAY, under explicit recursion and iteration limits;
  • evaluates audited 3-D aggregate references across workbook tab order, including hidden sheets and reverse-written endpoints, without expanding the sheet span into dependency edges;
  • 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, table rename, table-column rename, table-row resize, 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.

CellRune 0.1.12 adds exactly 20 official Excel-facing functions: GAMMA, GAMMA.DIST, GAMMADIST, GAMMA.INV, GAMMAINV, GAMMALN, GAMMALN.PRECISE, BETA.DIST, BETADIST, BETA.INV, BETAINV, BINOM.DIST, BINOMDIST, BINOM.DIST.RANGE, BINOM.INV, CRITBINOM, NEGBINOM.DIST, NEGBINOMDIST, HYPGEOM.DIST, and HYPGEOMDIST. All four families share one first-party special-function foundation: a Lanczos ln_gamma, regularized incomplete gamma and beta kernels, and a safeguarded inverse solver that charges the calculation budget for every step it takes. A family's cumulative and quantile forms are evaluated through the same tail kernel, so they cannot drift apart; the density forms are built on the same ln_gamma and ln_beta primitives. The implemented catalog now contains 347 official names and 348 accepted entries including the OOXML dummy-function marker.

The regex functions target PCRE2 semantics with bounded compile, matching, capture, and output work. CellRune's prebuilt Python, Node.js, and MCP artifacts pin the bundled PCRE2 10.46 engine; Rust consumers use pcre2-sys linkage policy and can set PCRE2_SYS_STATIC=1 to select its bundled source build.

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. Unary and binary array operators that combine whole-column references use one common extent: the greatest populated row among the columns those operands reference, with a one-row minimum for an otherwise empty sheet. Cells in other columns of the same sheet do not widen it, so the value depends only on the cells the expression's own dependency rectangles cover and a full and an incremental recalculation agree. Missing cells within that extent are blanks, and directly resolved source arrays plus operator outputs are charged to its cumulative array-cell budget. Function calls keep function-defined argument boundaries: each array argument is evaluated under its own bounded context, and a function's return does not establish a whole-column operator extent by itself. When another direct whole-column operand has established such an enclosing context, the returned array is charged to that context before the operator consumes it.

Direct 3-D references are accepted by SUM, AVERAGE, AVERAGEA, COUNT, COUNTA, MAX, MAXA, MIN, MINA, PRODUCT, STDEV.P, STDEV.S, VAR.P, and VAR.S (including the catalogued legacy aliases). The span follows workbook tab order, so hidden sheets participate and reversed endpoint spelling produces the same set. Excel-defined direct 3-D error contexts remain values: INDEX and VLOOKUP return #VALUE!, while OFFSET returns #REF!. Other direct 3-D consumers remain an explicit UnsupportedSheetRange capability issue. A bare 3-D reference or one composed through an array operator returns #VALUE!; it does not silently inherit an enclosing aggregate's collection policy. The static capability scan and evaluator share this policy.

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.

Table authoring uses stable identities rather than positional names. Construct WorkbookChange::rename_table, rename_table_column, or resize_table_rows and include it in the same atomic EditBatch as other workbook changes. Renames update cell formulas, defined names, calculated-column formulas, and totals-row formulas through one typed source-span rewrite path. Resize preserves table identity and filter/sort orientation, materializes calculated and totals cells, and supports expanding a header-only empty table. Through WorkbookCalculationSession, formula rewriting and table materialization are bounded by SessionLimits. A successful EditReceipt lists the affected stable table IDs; any invalid target, collision, rewrite error, resource limit, or cancellation rolls the whole batch back.

Use analyze_defined_name, analyze_defined_name_with_options, or analyze_defined_name_cancellable to inspect a defined name against an immutable WorkbookSnapshot. The typed result distinguishes a single rectangle, a 3-D span, ordered multi-area geometry, a valid empty reference, dynamic formulas, constants, external targets, invalid definitions, unsupported expressions, and missing names.

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.12 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.12"
npm install "@cellrune/node@0.1.12"

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 inspect_defined_name and Node.js inspectDefinedName expose the typed defined-name query. The existing apply_changes/applyChanges v1 shapes are unchanged; the separate apply_changes_v2/applyChangesV2 methods add stable-ID table rename, table-column rename, and table-row resize plus changed_table_ids/changedTableIds receipts.

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 12 tools are workbook_create, workbook_open, workbook_close, workbook_summary, workbook_read_range, workbook_function_usage, workbook_scan_capabilities, workbook_apply_changes, workbook_apply_changes_v2, workbook_recalculate, workbook_changes_since, and workbook_save_as. The v2 edit tool adds stable-ID table rename, table-column rename, and table-row resize while retaining the v1 edit shapes.

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;
  • 3-D references outside the audited direct-consumer policy above;
  • 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

Run the standard Rust test suite from the repository root:

cargo test --workspace --all-features --locked

Formula compatibility is regression-tested against committed Excel-saved and Apache POI workbooks. See the conformance/README.md reference for the fixture layout, classifications, focused audit command, and maintenance policy.

License

CellRune is dual-licensed under either the MIT License or the Apache License, Version 2.0, at your option. You need to comply with only one of them, not both. Apache-2.0 includes an explicit patent grant; MIT does not. Both license texts are included in the source distribution.

Versions 0.1.0 through 0.1.2 were published under the MIT License alone and remain available under those terms. The dual license applies from version 0.1.3 onward. Dependency license information is provided in THIRD_PARTY_LICENSES.md.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

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.12.tar.gz (710.5 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.12-cp314-cp314-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.14Windows x86-64

cellrune-0.1.12-cp314-cp314-manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

cellrune-0.1.12-cp314-cp314-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cellrune-0.1.12-cp313-cp313-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.13Windows x86-64

cellrune-0.1.12-cp313-cp313-manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

cellrune-0.1.12-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cellrune-0.1.12-cp312-cp312-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.12Windows x86-64

cellrune-0.1.12-cp312-cp312-manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

cellrune-0.1.12-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cellrune-0.1.12-cp311-cp311-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.11Windows x86-64

cellrune-0.1.12-cp311-cp311-manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

cellrune-0.1.12-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cellrune-0.1.12-cp310-cp310-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.10Windows x86-64

cellrune-0.1.12-cp310-cp310-manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

cellrune-0.1.12-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: cellrune-0.1.12.tar.gz
  • Upload date:
  • Size: 710.5 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.12.tar.gz
Algorithm Hash digest
SHA256 92db105d25b4d36a5be6c189d5b899f992bbbe9c810a625dc53584bd61c0f5cb
MD5 340f210dfd7f23286a4ecda164998b25
BLAKE2b-256 4b026305f9d61bbcc2f54928333fa1d891aa465ca46fe52c196b2a90718aced5

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12.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.12-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.12-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.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.12-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cb6f85f18deafc0a7329b2c4955471a835e0dcef4b110b6860fb46d426ee7de2
MD5 0edc32b1b70ea72e8a44cd89d1e77686
BLAKE2b-256 d3811d0f1c90d85d82d83c2ac7459f59163c4ab10f8f6fc577cf7d1e899b6c93

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 53418a8743484cf8c8baf458578d54a1b76464e2f1c4afff15ab14d985746d52
MD5 41ec46e71ebf415f40947640f6f23cd9
BLAKE2b-256 eaa1177f435e34f72ae9fb0bab55e3d02855ac4319b0c3189be1066e3823a062

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddf25c611e802fe3f6236b5a831a88d377d35540771583245f9df915c241aa71
MD5 c79edb8b2113406132fca99008883464
BLAKE2b-256 81d047fff6ada3611e62e306f900ea3da96cb4ba1e1873670c6827f2211494c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.12-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.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.12-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 943028183677dd3a45ec8039e128210216a42caac985fd43f4f1f03ecfb9e7e0
MD5 b1a551a5a97caeddbe1ea4b9c7c2885a
BLAKE2b-256 d2b9b68c0d820a16fc8636c71c19fd87aaa36e66d242d71e77a861428b1dbef2

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d8f5805effcda01917afa86438e6038d1cc123a011dd69468671914e77df38e
MD5 fdf0a7759a7f155d1f346582f5053c97
BLAKE2b-256 2c3f6f456cc0477d898ca8f66f39cec05566fa4e406468b7e5b202a3a3c9f9d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03d1b59c56195ee0aca090c6f0fbd1f4549a160f71dad63f78257b60455b8700
MD5 4813e8bb0e4a277910b4e80db2a48f40
BLAKE2b-256 4bb784c785a2e0ea282e89c136f2b264dedd0418c4a04ac0bddbc1107a000965

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.12-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.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.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e2381210214978ac5fb7a17486fd871928c77f012944c2f778410026ac25f609
MD5 9aa7f5992d37ca46d217bf7fdbcb3342
BLAKE2b-256 99efc51897e4c8a9261f616b0c1d6ec4ae4831ca07a24b653fbd486ef2f7d396

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad845cedddf06c9c90e8a6cbe853d7c89eebaf404dc47644ae8ca8242ed02502
MD5 6da3a3bf91ce3b61df41fa86b38f94f2
BLAKE2b-256 89ebd8bc8c231e0f8f204ac0465aefdb3dcb4423d3ee6310359411041b3eff2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82f89c0c62934ceec28986dc08d12054ad3b8fee5c852569a0ec6e5e95bbc36c
MD5 14f2f0019d89c39fa11024a14b4f650a
BLAKE2b-256 287a945ccbd7357a4b19843cf738445a1bbbd78921f643ba5c9d7b366ee56b21

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.12-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.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.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8e65c91cd8d64c00264354d4fd3f578668fd5b5ccd147a6beac5df2d64d6f7ac
MD5 988d29ee54f6de0ea59c07460eb7d62d
BLAKE2b-256 7c5e3b218e293b2493a0bb6e1385a34b0dc7c87983ae1ca83363b461742a9499

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 57a0d466f59c720f52809b3f9a62496fb2b405e4e0e3a07b34740098bf99effd
MD5 c70ffc0d327dcf8d60f81ab987dd29f5
BLAKE2b-256 8e1572f892c79f77fc72124230c7a4486287073b069278a2ee20fb5b6e88c0f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 70724ef531fafa60e251b5d75fbe3cb0e8ec1a3d701b33c44f35bc5ba103b4c9
MD5 069359d035923be44418987488c51b5b
BLAKE2b-256 822a9c051f5627bd989a59bee3ca123b120306bc2a4ee4a3f28cf1d512f05c29

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cellrune-0.1.12-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.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.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 db65ca35f4ac0163398993d872697ba74f0c562283f19bcf0d6e24cea3b8cfeb
MD5 5e26c5e785bfca8f56b76bc5314ce5d7
BLAKE2b-256 a5a3bce77ff7b67aa0da8e677e771443d9954a5f6a677d0580631739c18fd317

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5f841237b623d3d6d250311b61c4b69e8ecef97edfa41f30a4f14b10e1561a0a
MD5 6acb8452e73f7a50852e877f8c52561f
BLAKE2b-256 65bbde1c9510a5ac910b988583b6c356cc2a9dff644985f3001345c542a0db82

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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.12-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2aeb949f92a7c90cd94867ac5fa5bdadb3922681d38e7ca66e9f616e98c8fd43
MD5 194bde63719d83dc0da16769207835f2
BLAKE2b-256 6cf31ac0915646a4097a347498dedb303a1363227bd6f8625e6b10ed8bc62ad4

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.12-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

This release

0.1.12 This release

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

0.1.3

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