Skip to main content

Headless XLSX/XLSM reading, deterministic calculation, editing, and writing

Project description

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

cargo add cellrune@0.1.0

Or add the dependency directly:

[dependencies]
cellrune = "0.1.0"

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;
  • reports unsupported formula capabilities before calculation;
  • 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::{
    CalculationOptions, ReadOptions, calculate_workbook, read_xlsx_path, scan_formula_capabilities,
};

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

    if capabilities.is_supported() {
        let calculation = calculate_workbook(&workbook, CalculationOptions::default());
        println!("calculated {} formulas", calculation.len());
    }

    Ok(())
}

Reading and calculation are separate operations. calculate_workbook does not modify the source WorkbookSnapshot or its saved XLSX results. Volatile functions require deterministic inputs through CalculationOptions: with_today_serial for TODAY() and with_now_serial for NOW(). Use supported_function_catalog for the build's exact function surface and scan_function_usage to rank the supported and unsupported functions actually used by a workbook. 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.0 release line targets Python 3.10 through 3.14 and Node.js 22 or newer. After the matching registry artifacts are published, install them with:

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

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()
    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.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. Use scan_formula_capabilities to check a workbook before relying on calculated values.

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.

CellRune does not claim complete Excel compatibility.

Public CI uses generated, redistributable workbook fixtures. Private development corpora and native-producer evidence are not distributed or represented as 0.1.0 release gates; validate workbooks from your own producers against the supported-capability report before relying on them.

License

CellRune is available under the MIT License. Dependency license information is provided in THIRD_PARTY_LICENSES.md.

Project details


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.0.tar.gz (367.0 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.0-cp314-cp314-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.14Windows x86-64

cellrune-0.1.0-cp314-cp314-manylinux_2_35_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

cellrune-0.1.0-cp313-cp313-manylinux_2_35_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

cellrune-0.1.0-cp312-cp312-manylinux_2_35_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

cellrune-0.1.0-cp311-cp311-manylinux_2_35_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

cellrune-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

cellrune-0.1.0-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.0.tar.gz.

File metadata

  • Download URL: cellrune-0.1.0.tar.gz
  • Upload date:
  • Size: 367.0 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.0.tar.gz
Algorithm Hash digest
SHA256 f97db0622a719eb63c7f504eddeac71274535a257d61968da1bf151f4a767bb7
MD5 aece102eb72ad71cf26ff8ebb4e13941
BLAKE2b-256 2c9f323e21eafcdc7b2d62422a3440eff506c82d9846c8d6e1c0375ddf01aa12

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: cellrune-0.1.0-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.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bf7123df753f59d26fb8ae2ae59fd91a44bf6034605153f8f154869dfd6cda90
MD5 e43abc848a16d2de5b59f9e4a9e9075f
BLAKE2b-256 0477670d86a97e2d112b8c50a148841dd100830028c43eb38a0c8e5afa57ccaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.0-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.0-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.0-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 ffc105d276c1c8c5f99e26eed2d672809177d2aa3fcdd8a73a2838c3d9e54c39
MD5 74d5c3c5baf8f436d1187bd37c3a8703
BLAKE2b-256 68131351b076f387f8c80ac2b76f430eaad4ac9f5a38b4c655a5b2f3f0f80ca6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cellrune-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 548bba8d3554f6a5c1fa142d136f5f2a33e6f9ef4df03dc87a008cc7047689a2
MD5 80e74c743fd8fe380297e8807c888274
BLAKE2b-256 887ad363ed9a883e45a9a26697a3f33b2904b8b13ba39cfc79156e245197187e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: cellrune-0.1.0-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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9f6a6045366c7b25fbd8b05fbe44d1abfbdcd722f5b65c0402d30fe1e18572d0
MD5 867ab15dad36a4c21caa7b35f0d2aca8
BLAKE2b-256 926a6cd9cbb551f730ffd341ad74f3692f572815ad100717efc320a963ca8a74

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.0-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.0-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.0-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 6a9f269f2517daaf5493412c6a52894f970822740a452ab38279b16d39cd8649
MD5 ad90947e1f92f38b84f658065e8fa055
BLAKE2b-256 88855d0c96d502310465ae9cbcdc99289b01e2c88641c1a64600af15881fe4b6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cellrune-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d90c52e89e0bc28ee23f8bc5a7d6f5d3738ffe9c424ca81938066e344ef4031
MD5 45ddbbe68c8126b6f83dd04d499a3206
BLAKE2b-256 634f99d4a68137bb3b6b9ddd62c5709a7b393e7c37457df03e9319694b6d2de5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: cellrune-0.1.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ba6c5f20ca471a880b3961d398cd1440cd366ba48f847134c8392a6ec7c5fea9
MD5 3bafaea0eace5e4cd6e7e652b4640db1
BLAKE2b-256 92b95c6edcdba46710cea50174e4c15fd963c75853288997755d890c33ffe7df

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.0-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.0-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.0-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 a521157db63194d6615901a2329b61c1f1f1137d344e3928c6923abd1340bbb5
MD5 e1ec55db1dae0c686222018a7a6d1795
BLAKE2b-256 887eff9460f0a0459f16ae448a7a9e2d5098cbfdee1e04539bf7c5da0388eec2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cellrune-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f4af153ab861e0c556fb29233e2fd753c101c28bff6c9ebbece1c530b1046eab
MD5 25e9f7963dff413d9dc23685ff0560ea
BLAKE2b-256 650b1b5a158df7b5c1dca8d11e4361a5685c2191dfefe086783531aa20709da9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: cellrune-0.1.0-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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 49667bf4a0e5e46039520b40bc6617a7d32e9d653842aa3e6516c3578de34cca
MD5 22b7883bc633a858008a4bfbd8016b1c
BLAKE2b-256 09630b911c12775851f62e5d766dfac67141eec6c8e8f7eefae8d42c65773069

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.0-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.0-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.0-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1bc4d8aef35c89a7992a5585048826a98da838a8dc2ad5127ef8fcb0ba88edbb
MD5 468510801a865798c068c4772dd7d1f6
BLAKE2b-256 c037d8ec0b4e2a8e0a876f4af80b36c7b6287a54ecf7684ac3aefd8941f13f40

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cellrune-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cb03037b0211c1d6b741aefcba5b1fb15e927694f8fefef7260d9d4d034af91
MD5 f45fa52af064de1033b67efe722bd79d
BLAKE2b-256 6f39a306929811b818694164efb9b1f29d6a9d7de033d34cbe22f1c8f7fecc61

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: cellrune-0.1.0-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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 197b3c210ab6e206bcb7141e4601c3eb747ff63afb87abdb4f29847e82775c62
MD5 48121c781ef38738dc5939c123234e59
BLAKE2b-256 4904ad335b8aa3199cbfa306ba8f8eb1b4227f7cfec809f17a3007188ce154f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellrune-0.1.0-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.0-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for cellrune-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 abfbcdd7957bd14bc648b74332c32aa647fb855ce544db1bc15de53627b6724d
MD5 19e09a13d657421bbe8fd03cd03b3ae6
BLAKE2b-256 12160751eb9df65e03278a0e0642cc033f726e3dab15169acb04d9ae7c8499f6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cellrune-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26837d47915e3b5aae302bdcbc500faeb1be6bf87e89f63d72a8f060c3c7ceea
MD5 be66f69dc8a4e18965c3ae3d735c38b3
BLAKE2b-256 c019460bf5b5771371272849d7715260ab6e4f7594562e39b55e3749049223b9

See more details on using hashes here.

Provenance

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page