Skip to main content

High-performance graph traversal and graph algorithms for Python

Project description

rxgraph

High-performance graph traversal and graph algorithms for Python, implemented in Rust with an ergonomic object API and Polars expression support.

rxgraph supports:

  1. Efficient graph construction leveraging Arrow-backed DataFrames as inputs
  2. Optimized stateful search, where the traversal predicates are expressed with Poalrs expressions
  3. Common graph algorithms like BFS, DFS, shortest path, weakly connected components, etc.

From initial benchmarks, rxgraph is comparable in performance and CPU/memory consumption (and very possibly better in some cases) with igraph and networkx.

The place where rxgraph really shines is stateful search - you can use rxgraph for stateful blind search across a very large graph. See the traversal example in Quickstart.

The main focus of this library is Python and its Python bindings, but its Rust core is also published as a crate to crates.io.

[!IMPORTANT]

rxgraph is under heavy active development - the core implementation (Python bindings & Rust crate) are usable with decent test coverage, but it is not ready for production and you should use it at your own risk. The public API is likely to change as well.

Having said that, the library is usable and should work for most scenarios it supports, and I would love for some initial feedback.

Installation

# uv
uv add rxgraph polars

# pip
pip install rxgraph polars

[!NOTE]

Requires Python 3.11+ and currently depends on Polars for expression input.

Quick Start

import rxgraph as rxg

graph = rxg.Graph.from_edges(
    [("a", "b"), ("a", "c"), ("b", "d"), ("c", "d")],
    nodes=["a", "b", "c", "d", "isolated"],
)

assert graph.node_count == 5
assert graph.edge_count == 4
assert graph.bfs("a") == ["a", "b", "c", "d"]
assert graph.shortest_path("a", "d") == ["a", "b", "d"]
assert graph.reachable_nodes("isolated") == ["isolated"]

For the most powerful capability of rxgraph, see the Stateful Search example.

Data Model

For small or Python-native graphs, use Graph.from_edges with hashable node labels:

routes = rxg.Graph.from_edges(
    [
        ("a", "b", {"price": 5, "kind": "route"}),
        ("b", "c", {"price": 6, "kind": "route"}),
        ("a", "c", {"price": 100, "kind": "skip"}),
    ],
    nodes=[
        ("a", {"closed": False}),
        ("b", {"closed": False}),
        ("c", {"closed": False}),
    ],
)

For table-backed graphs, pass Polars DataFrames directly:

import polars as pl
import rxgraph as rxg

nodes = pl.DataFrame(
    {"id": [10, 20, 30]},
    schema={"id": pl.UInt64},
)
edges = pl.DataFrame(
    {"id": [1, 2], "src": [10, 20], "dest": [20, 30]},
    schema={"id": pl.UInt64, "src": pl.UInt64, "dest": pl.UInt64},
)

table_graph = rxg.Graph(nodes, edges)
assert table_graph.shortest_path(10, 30) == [10, 20, 30]

Node tables require an id column. Edge tables require id, src, and dest. All identity columns must be either unsigned integers or strings. Extra columns remain available to traversal expressions.

Algorithms

The high-level object API includes:

  • bfs(start, max_depth=None)
  • dfs(start, max_depth=None)
  • reachable_nodes(start)
  • shortest_path(source, target)
  • out_degrees(), in_degrees(), and degrees()
  • weakly_connected_components()

These methods return the same labels or IDs used to build the graph.

Stateful Search

Graph.search evaluates Polars expressions against candidate edges. Expressions can read source-node fields (src.*), destination-node fields (dest.*), edge fields (edge.*), and path state (state.*).

Using the routes graph from the data model example:

s = lambda name: rxg.col(f"state.{name}")
d = lambda name: rxg.col(f"dest.{name}")
e = lambda name: rxg.col(f"edge.{name}")

result = routes.search(
    start_nodes=["a"],
    visit=(~d("closed")) & (e("kind") != "skip") & ((s("spent") + e("price")) < 20),
    next_state={"spent": s("spent") + e("price")},
    stop=rxg.col("dest.id") == rxg.lit(routes.node_id("c")),
    initial_state={"spent": 0},
    max_depth=3,
    max_paths=10,
)

path = result.paths[0]
assert path.nodes == ["a", "b", "c"]
assert path.edges == [0, 1]
assert path.state == {"spent": 11}

Search supports DFS or BFS ordering, optional Rayon-backed parallel traversal, depth/path limits, and optional intermediate state materialization.

Search kernels evaluate supported Polars scalar, list, and struct expressions natively in Rust. List and struct columns/state can be read and updated inside visit, next_state, and stop. Polars JSON list literals are intentionally not decoded yet; use list columns or list state for list-valued operands.

See examples/nyc_taxi_zone_search.py for a public NYC TLC trip-record example that uses list and struct state over millions of raw trip edges.

Native Rust kernels

The Polars expression DSL covers most stateful searches with no compilation step. When you need arbitrary state types, logic the DSL cannot express, or the last bit of performance, you can supply a native Rust kernel instead.

A kernel implements the rxgraph::Kernel trait - the same three per-edge decisions the DSL makes (visit, next_state, stop) plus its own per-path State type. The engine is monomorphized over your kernel, so per-edge calls are statically dispatched; there is no per-edge virtual dispatch. You register a kernel under a name with inventory::submit! and then select it by that name.

use rxgraph::{EdgeCtx, Graph, Kernel, NodeId, StateRow, Value};

#[derive(Clone)]
struct HopBudget { max_hops: u64, target_col: String }

impl Kernel for HopBudget {
    type State = u64; // hops taken so far
    fn initial_state(&self, _g: &Graph, _start: NodeId) -> u64 { 0 }
    fn visit(&self, cx: &EdgeCtx<'_, u64>) -> anyhow::Result<bool> {
        Ok(*cx.state() < self.max_hops)
    }
    fn next_state(&self, cx: &EdgeCtx<'_, u64>) -> anyhow::Result<u64> {
        Ok(cx.state() + 1)
    }
    fn stop(&self, cx: &EdgeCtx<'_, u64>) -> anyhow::Result<bool> {
        Ok(*cx.state() >= self.max_hops
            || cx.dest_bool(&self.target_col)?.unwrap_or(false))
    }
    fn state_row(&self, state: &u64) -> StateRow {
        vec![("hops".into(), Value::U64(*state))]
    }
}

// Register the kernel by name (inventory is re-exported by rxgraph).
rxgraph::inventory::submit! {
    rxgraph::KernelEntry {
        name: "hop_budget",
        make: |p| Ok(rxgraph::boxed_run(HopBudget {
            max_hops: p["max_hops"].as_u64().unwrap(),
            target_col: p["target_col"].as_str().unwrap().to_string(),
        })),
    }
}

You compile your kernel into your own Python extension (statically linked with rxgraph); importing it registers the kernel, and Python can then select it by name:

graph.search(start_nodes=["a"], kernel="hop_budget",
             params={"max_hops": 3, "target_col": "target"}, max_paths=10)

See examples/rust-kernel-plugin/ for the full guide, including the EdgeCtx accessor reference and the maturin build.

Architecture

The Python package is backed by a Rust core. Internally, rxgraph stores node and edge tables as Arrow RecordBatch values, validates graph identity columns once, and builds compact CSR topology for traversal. User columns stay in columnar form and remain available to stateful search expressions.

Rust Crate

The Rust engine is published as the rxgraph crate and exposes the same traversal kernel model used by the Python bindings.

See crates/rxgraph/README.md for crate-specific usage.

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

rxgraph-0.5.0.tar.gz (90.4 kB view details)

Uploaded Source

Built Distributions

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

rxgraph-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rxgraph-0.5.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rxgraph-0.5.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

rxgraph-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

rxgraph-0.5.0-cp314-cp314-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.14Windows x86-64

rxgraph-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rxgraph-0.5.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rxgraph-0.5.0-cp314-cp314-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rxgraph-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rxgraph-0.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

rxgraph-0.5.0-cp313-cp313-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.13Windows x86-64

rxgraph-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rxgraph-0.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rxgraph-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rxgraph-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rxgraph-0.5.0-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12Windows x86-64

rxgraph-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rxgraph-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rxgraph-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rxgraph-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rxgraph-0.5.0-cp311-cp311-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11Windows x86-64

rxgraph-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rxgraph-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rxgraph-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rxgraph-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

Details for the file rxgraph-0.5.0.tar.gz.

File metadata

  • Download URL: rxgraph-0.5.0.tar.gz
  • Upload date:
  • Size: 90.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rxgraph-0.5.0.tar.gz
Algorithm Hash digest
SHA256 b21ee8d2f2d6318b4dfd036e4744ba5b0f9377d72007ce0304b362eaaa9b0d0a
MD5 1fd788cddf7e042fe3eef9b6feb79180
BLAKE2b-256 4c025290c90661f9835f03de02ee20da72bea342534e89ddddeca282f60d59e1

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 89ea136c19f548172e96bb8dac0ad758ab265ca15ac446c9202206bf038130b9
MD5 57aeac4a27d8a2a58750b744b7fa118c
BLAKE2b-256 1503a9fdf356bacf542d9588cf1c0ddcac67a6f6208fc1a896a6d842af0f5414

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 02499691d576f31e994617fe265aebfb578960ec76e2fe5f54fdc7dda2ec9c76
MD5 5530860ba2e7b58abf2d71b74062bb08
BLAKE2b-256 cfe18bb9db3822d75ee26c96dbb188f37dc05a2d81f4223df2c12bac3c042e68

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a41bf3b78f86d6fdaad6674f025fb9ad452084f3b0835925fb217eab6f490dd7
MD5 c21d8e3d7c46f7935828038f4451e3c5
BLAKE2b-256 d7a376b31e8edf6cc05427fc2d8fcb557d01a5e665d401ee7e396b6014b1cb81

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2beba5cdd443b4d610a3e0539c7da16dcf1372570b66f25193e167f709132f5e
MD5 823b221bee6bd974014ebd1c76b6a76e
BLAKE2b-256 fbad0393f1cc10b6a28092438bcd90e8775ad5fc3dde585cd8d26966a3b89c67

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: rxgraph-0.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rxgraph-0.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 fba3834bb27dab6ef23d0a7b3f6a4b4e5d4070d88ed17050adf8d02fb7d01e1c
MD5 cf6b8d0dabb77313aaf6eac4df835be0
BLAKE2b-256 aa79c70d1e58483bbf048c931b5f7c15242c06f0f6315f868dd9d32467eab4c5

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ac52f147932e2fb2da7ed54531b1f52e1d02d39aa154119f687f94935340880
MD5 6a5b2bcc941c639873408f8b8a815136
BLAKE2b-256 097186eecb1afaed57e1f022f6b1bc36df58baa5ea447b177c572ea6532c5321

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7b2b05d04a86c968a89774c3c5fc7532e2b6e688c6158a7a2629b508b96c09d8
MD5 db2871f392e5b075d2e66d12c77f2d3f
BLAKE2b-256 854bf06193fadb179c6eda9e5e27e30c5e17a80695c41ee9681ee2f4c69a7896

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23d707a510d1121c4eed9e7047a9e1de5492e3983728edd8027c66c577b8ea64
MD5 0ae586299c77351a0036301204b5f25a
BLAKE2b-256 ba0ba6130494e7ed1e7f8ba7343126ad87fe125dcce664a40af366e9ccb9be8f

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 50cf39894e9551fc75046bb50d8aaac982913db0defa22cf68665e376d62bec1
MD5 dd8ccd6c88d9f6a1208055bfe21c3480
BLAKE2b-256 59628c2f45083f65c49777ea7e390d42a789c77274608930c406ca2f5c650e1a

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 db6fc7c3f17e35e76466df0fa69d5589b52d3d4eb539e754f39b40d9b2c8616d
MD5 c579c423bd528d6958d85cb0491136eb
BLAKE2b-256 d61d9c85e12bf24b01ce78b8bb74dd3525fb8efff2e2098b9873171fe823e360

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rxgraph-0.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rxgraph-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c1d988e12088b9247c4d0f216b086b199fba984760413029408c996c2e0616c5
MD5 0ff677903e4253afde0dd449cf8644dc
BLAKE2b-256 fd8925c1c5a716938b9709926493ba56b1f3b73acfefefa7a028c71c207d032b

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 db0cdf78215fe24162b2da8dfac9224a0f45eabd1c0f26f64b4a567caf354d75
MD5 5a0b54fa1d28b93b68035ec4f069a1cb
BLAKE2b-256 3c305b8978dad6f6d8909eaf9c02f178d3e68a084bb8493df7e55b5787d8639b

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 19b9f90e3256ca4c0ee5b00b2f8ba1b1cf70288c8ddf589c7b7823b6cd9c2c5c
MD5 1d0a8ab18bc6fcefd76fc8a2f7c17e4f
BLAKE2b-256 3246f7cfd7710f6e84acb199119aa1cec60e4f6fddb9f299cd1e28d426fe5eb2

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c5253049f5499a768e363edf8f7539d10eba00dc49fd470db7706a30a0d8bad
MD5 f14a6ce9111926aefb457558c1420b24
BLAKE2b-256 e5ee0d7cd04d5ad5f6e8234fecbd65f3ec09ce64976549b97677961df5f94f56

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b778bf11c3f1718916612cac4bae91881d11ddcced9dacd43eb4b7b9f9f0034e
MD5 af2ba1419c7a96b3aa6eaeda15b171a2
BLAKE2b-256 afcbd6cdb2f09a99b8b4fa16c209974994ce6be08ca89e7cd3fd4a3d781f8f72

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rxgraph-0.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rxgraph-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 45d065f573932fcde887eab08deea07749fcfc8ad69c2b1a4dbaf2a80beaa82c
MD5 55a8adcf4fdafbefc2ba551c579c67a5
BLAKE2b-256 769f2d0f0c4e27f9d1474a482fd15c150f932703b0576926d8f1c66f233bf1c3

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0119ebb1d8b3f82cf8bcea0d8f14ce6848f22403cdc2f7125750038825b747ec
MD5 af0ef81e0d49da2cb6acce535cad3d01
BLAKE2b-256 2fd0296f8d1097d874ba79b460cf8152cf5cf69ee2085d42e10c7cea1a6bb14e

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4fc9b5c5b573b03352f0a2e7bbc560b33de8e2c582fd7221e59c3ebba4e5b75b
MD5 97f134e0d60ee2136085ba2254e35613
BLAKE2b-256 cff807bdd5cd9f7c800d27c4103cb9722c81eb0656db25f5514ea3f9d201bd2a

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 507adbe194b3eb613ab9e2d275bc995cb89d5b54ffb225cd4edfba216dff5201
MD5 e021ceaf24dbc9f10331c9aea352df42
BLAKE2b-256 2c48e6837e9b54f5650d8ebfdc599cd6b7efa17d3dc37ff85c4a60a688fdc89c

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 edacdf4beaaf92ffb13836e6b1e0d78da921d6f76b37f21255f160882ce5f98f
MD5 4b9e1c85a09ce6c3a8250dcd14052930
BLAKE2b-256 a73b3db78c10de83dd2bea4bdbdd8f9725cbb17891285caddfa6b7c6df6c497c

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rxgraph-0.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rxgraph-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 538be7901f623bb262ab62d9d430d4e45008b5b4ddc70302ea69eb2abed9bc37
MD5 e621d2d9d4c2cd444225cac8abac885f
BLAKE2b-256 ed393f769499e131d99f28120e0b3829b6e5aa7f3a5fa837de0da1519f2594ae

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18275318d7401caa913cd023d54adea2170847c1c7b77db7dcfa7527d2528f3a
MD5 b6efea0b5016c879e9b16989828f2650
BLAKE2b-256 54192fe9576bcc91f0180716025e64786c1ec52a5c9774a01feb7c1cc0a2ff83

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8c8486176596bf80b7b2b0c0d1babd4df881fb8d824c648ec076e12c31a99165
MD5 950fddbd3acfee72ef48d8783b72c0cb
BLAKE2b-256 48d95b10cc0027d4a1e6b5f7eb3e91c436afea7860c06ddb4f4a64577b546bda

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57fbf9f007b081481a5f256d55434e9f4267ea091cb9c18d8b90d94afdaeb145
MD5 35f09cd780b5815a7b958e6ad604be7e
BLAKE2b-256 ee4b17824e48cbc3db1c70540cac89dbffe80f52f2cd6e5fd7a3f70e2804fa9b

See more details on using hashes here.

File details

Details for the file rxgraph-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rxgraph-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bc66d7813404549e741581e7bec26b677113235c5b6b1dcd2192d43add62f484
MD5 7018873b195b0f20532881b78c1ebb66
BLAKE2b-256 e4cb561a3f500e34f2ec482fe920242e25034a68aecc35cad7bd58aa0fd0b86e

See more details on using hashes here.

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