Skip to main content

License: MIT

Python Rules Engine

ZEN Engine is a cross-platform, Open-Source Business Rules Engine (BRE). It is written in Rust and provides native bindings for NodeJS, Python and Go. ZEN Engine allows to load and execute JSON Decision Model (JDM) from JSON files.

Open-Source Rules Engine

An open-source React editor is available on our JDM Editor repo.

Usage

ZEN Engine is built as embeddable BRE for your Rust, NodeJS, Python or Go applications. It parses JDM from JSON content. It is up to you to obtain the JSON content, e.g. from file system, database or service call.

Installation

pip install zen-engine

Usage

To execute a simple decision you can use the code below.

import zen

# Example filesystem content, it is up to you how you obtain content
with open("./jdm_graph.json", "r") as f:
  content = f.read()

engine = zen.ZenEngine()

decision = engine.create_decision(content)
result = decision.evaluate({"input": 15})

Loaders

For more advanced use cases where you want to load multiple decisions and utilise graphs you can build loaders.

import zen

def loader(key):
    with open("./jdm_directory/" + key, "r") as f:
        return f.read()

engine = zen.ZenEngine({"loader": loader})
result = engine.evaluate("jdm_graph1.json", {"input": 5})

When engine.evaluate is invoked it will call loader and pass a key expecting a content of the JDM decision graph. In the case above we will assume file jdm_directory/jdm_graph1.json exists.

Similar to this example you can also utilise loader to load from different places, for example from REST API, from S3, Database, etc.

Supported Platforms

List of platforms where Zen Engine is natively available:

For a complete Business Rules Management Systems (BRMS) solution:

JSON Decision Model (JDM)

GoRules JDM (JSON Decision Model) is a modeling framework designed to streamline the representation and implementation of decision models.

Understanding GoRules JDM

At its core, GoRules JDM revolves around the concept of decision models as interconnected graphs stored in JSON format. These graphs capture the intricate relationships between various decision points, conditions, and outcomes in a GoRules Zen-Engine.

Graphs are made by linking nodes with edges, which act like pathways for moving information from one node to another, usually from the left to the right.

The Input node serves as an entry for all data relevant to the context, while the Output nodes produce the result of decision-making process. The progression of data follows a path from the Input Node to the Output Node, traversing all interconnected nodes in between. As the data flows through this network, it undergoes evaluation at each node, and connections determine where the data is passed along the graph.

To see JDM Graph in action you can use Free Online Editor with built in Simulator.

There are 5 main node types in addition to a graph Input Node (Request) and Output Node (Response):

  • Decision Table Node
  • Switch Node
  • Function Node
  • Expression Node
  • Decision Node

Decision Table Node

Overview

Tables provide a structured representation of decision-making processes, allowing developers and business users to express complex rules in a clear and concise manner.

Decision Table

Structure

At the core of the Decision Table is its schema, defining the structure with inputs and outputs. Inputs encompass business-friendly expressions using the ZEN Expression Language, accommodating a range of conditions such as equality, numeric comparisons, boolean values, date time functions, array functions and more. The schema's outputs dictate the form of results generated by the Decision Table. Inputs and outputs are expressed through a user-friendly interface, often resembling a spreadsheet. This facilitates easy modification and addition of rules, enabling business users to contribute to decision logic without delving into intricate code.

Evaluation Process

Decision Tables are evaluated row by row, from top to bottom, adhering to a specified hit policy. Single row is evaluated via Inputs columns, from left to right. Each input column represents AND operator. If cell is empty that column is evaluated truthfully, independently of the value.

If a single cell within a row fails (due to error, or otherwise), the row is skipped.

HitPolicy

The hit policy determines the outcome calculation based on matching rules.

The result of the evaluation is:

  • an object if the hit policy of the decision table is first and a rule matched. The structure is defined by the output fields. Qualified field names with a dot (.) inside lead to nested objects.
  • null/undefined if no rule matched in first hit policy
  • an array of objects if the hit policy of the decision table is collect (one array item for each matching rule) or empty array if no rules match

Inputs

In the assessment of rules or rows, input columns embody the AND operator. The values typically consist of (qualified) names, such as customer.country or customer.age.

There are two types of evaluation of inputs, Unary and Expression.

Unary Evaluation

Unary evaluation is usually used when we would like to compare single fields from incoming context separately, for example customer.country and cart.total . It is activated when a column has field defined in its schema.

Example

For the input:

{
  "customer": {
    "country": "US"
  },
  "cart": {
    "total": 1500
  }
}
Decision Table Unary Test

This evaluation translates to

IF customer.country == 'US' AND cart.total > 1000 THEN {"fees": {"percent": 2}}
ELSE IF customer.country == 'US' THEN {"fees": {"flat": 30}}
ELSE IF customer.country == 'CA' OR customer.country == 'MX' THEN {"fees": {"flat": 50}}
ELSE {"fees": {"flat": 150}}

List shows basic example of the unary tests in the Input Fields:

Input entry Input Expression
"A" the field equals "A"
"A", "B" the field is either "A" or "B"
36 the numeric value equals 36
< 36 a value less than 36
> 36 a value greater than 36
[20..39] a value between 20 and 39 (inclusive)
20,39 a value either 20 or 39
<20, >39 a value either less than 20 or greater than 39
true the boolean value true
false the boolean value false
any value, even null/undefined
null the value null or undefined

Note: For the full list please visit ZEN Expression Language.

Expression Evaluation

Expression evaluation is used when we would like to create more complex evaluation logic inside single cell. It allows us to compare multiple fields from the incoming context inside same cell.

It can be used by providing an empty Selector (field) inside column configuration.

Example

For the input:

{
  "transaction": {
    "country": "US",
    "createdAt": "2023-11-20T19:00:25Z",
    "amount": 10000
  }
}
Decision Table Expression
IF time(transaction.createdAt) > time("17:00:00") AND transaction.amount > 1000 THEN {"status": "reject"}
ELSE {"status": "approve"}

Note: For the full list please visit ZEN Expression Language.

Outputs

Output columns serve as the blueprint for the data that the decision table will generate when the conditions are met during evaluation.

When a row in the decision table satisfies its specified conditions, the output columns determine the nature and structure of the information that will be returned. Each output column represents a distinct field, and the collective set of these fields forms the output or result associated with the validated row. This mechanism allows decision tables to precisely define and control the data output.

Example

Decision Table Output

And the result would be:

{
  "flatProperty": "A",
  "output": {
    "nested": {
      "property": "B"
    },
    "property": 36
  }
}

Switch Node (NEW)

The Switch node in GoRules JDM introduces a dynamic branching mechanism to decision models, enabling the graph to diverge based on conditions.

Conditions are written in a Zen Expression Language.

By incorporating the Switch node, decision models become more flexible and context-aware. This capability is particularly valuable in scenarios where diverse decision logic is required based on varying inputs. The Switch node efficiently manages branching within the graph, enhancing the overall complexity and realism of decision models in GoRules JDM, making it a pivotal component for crafting intelligent and adaptive systems.

The Switch node preserves the incoming data without modification; it forwards the entire context to the output branch(es).

Switch / Branching

HitPolicy

There are two HitPolicy options for the switch node, first and collect.

In the context of a first hit policy, the graph branches to the initial matching condition, analogous to the behavior observed in a table. Conversely, under a collect hit policy, the graph extends to all branches where conditions hold true, allowing branching to multiple paths.

Note: If there are multiple edges from the same condition, there is no guaranteed order of execution.

Available from:

  • Python 0.16.0
  • NodeJS 0.13.0
  • Rust 0.16.0
  • Go 0.1.0

Functions Node

Function nodes are JavaScript snippets that allow for quick and easy parsing, re-mapping or otherwise modifying the data using JavaScript. Inputs of the node are provided as function's arguments. Functions are executed on top of QuickJS Engine that is bundled into the ZEN Engine.

Function timeout is set to a 50ms.

const handler = (input, {dayjs, Big}) => {
    return {
        ...input,
        someField: 'hello'
    };
};

There are two built in libraries:

  • dayjs - for Date Manipulation
  • big.js - for arbitrary-precision decimal arithmetic.

Expression Node

The Expression node serves as a tool for transforming input objects into alternative objects using the Zen Expression Language. When specifying the output properties, each property requires a separate row. These rows are defined by two fields:

  • Key - qualified name of the output property
  • Value - value expressed through the Zen Expression Language

Note: Any errors within the Expression node will bring the graph to a halt.

Decision Table

Decision Node

The "Decision" node is designed to extend the capabilities of decision models. Its function is to invoke and reuse other decision models during execution.

By incorporating the "Decision" node, developers can modularize decision logic, promoting reusability and maintainability in complex systems.

Support matrix

Arch Rust NodeJS Python Go
linux-x64-gnu :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
linux-arm64-gnu :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-x64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-arm64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
win32-x64-msvc :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

We do not support linux-musl currently.

Contribution

JDM standard is growing and we need to keep tight control over its development and roadmap as there are number of companies that are using GoRules Zen-Engine and GoRules BRMS. For this reason we can't accept any code contributions at this moment, apart from help with documentation and additional tests.

Metadata

Release files for zen-engine 0.52.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zen-engine 0.52.0
File Size Uploaded
zen_engine-0.52.0.tar.gz 296.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.52.0
File
zen_engine-0.52.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp314-cp314t-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
zen_engine-0.52.0-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
zen_engine-0.52.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
zen_engine-0.52.0-cp313-cp313t-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
zen_engine-0.52.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
zen_engine-0.52.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
zen_engine-0.52.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
zen_engine-0.52.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.52.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.52.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
zen_engine-0.52.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.52.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.52.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
zen_engine-0.52.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.52.0-cp37-cp37m-manylinux_2_28_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64 Details
zen_engine-0.52.0-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 188.1 MB

Release files / zen_engine-0.52.0.tar.gz

Download URL zen_engine-0.52.0.tar.gz
Size 296.1 kB
Tags Source
SHA-256 checksum
How to use checksums
56b9c010075ae73c5f457a46fbfae828d07e7790d32deafc4d31255e9902a77d
BLAKE2b-256 checksum
How to use checksums
181cb9a6e124b4f82ffd78b72ba87cc68585a98847224422d88b9fc0fca26f05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
6e038cbe7b9253a0a37378a4564f0e7a655f8a5c8a5d76891a5e2fcc81f53002
BLAKE2b-256 checksum
How to use checksums
96d40885f96ec6531aa1493d7380b2bd7b72286295b90dbe8b8aea7c7ab50031
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
da762a5592e121b95587fb7ec331c8128012725cc04f719a8fd86d8024262f99
BLAKE2b-256 checksum
How to use checksums
6cbb1596348a1dad25541cf9ee6b3e726f4f7f2d2365bbbb754720f2601229e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
99bfb8e13e8c6d26745d06fb54df5f670e78a09d473f40d2621eeab4708c3093
BLAKE2b-256 checksum
How to use checksums
5c2c7ff7a458807fe33dfad41e4700811587b57802c7c8de3adab8d83a954b12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
3fb3122705de902c0bacf7ded4a75ee580092c27cad5abf8698ddae13f55690e
BLAKE2b-256 checksum
How to use checksums
900f43ddb8d596e1a5fdf6803e8d16641869e46fd3945e89a39fac1b0162060c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
0d341c7c90229ee26c8db5727ab42a2e925ac1f87d87c3ac524a4a708ff3b068
BLAKE2b-256 checksum
How to use checksums
0865b91265c6fd274d7e5804941e3152324b5a56e325f4416437a0fbe7e4e518
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3613e24541fe2bad9ac3f5760b24e4c940a16e816dc725c379f544ddef71f153
BLAKE2b-256 checksum
How to use checksums
023bebe8e9ae80bb9077c2a66520e4570f0bcfd3474eae81d1da8e8b1ebaea17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp314-cp314-win_amd64.whl

Download URL zen_engine-0.52.0-cp314-cp314-win_amd64.whl
Size 5.5 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
e8976d1cb2862f6232da038753840906853b5ebb8190636838ab808209664f05
BLAKE2b-256 checksum
How to use checksums
17448116ad7f6647a8849a40d392fe8235c56d111adb09e1bbabbb3b366c4cb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-cp314-cp314-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7dafc211b29c7448fe3fdc3e2c3f4eefcfb1babe00516c80010e75c2af9207a5
BLAKE2b-256 checksum
How to use checksums
366f6e23fde4764156ba0b6127304386f8d82ddf60cda5635dc1270e8b779534
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp314-cp314-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
672ca2321e5d016d343cbdac2cda198930fdb1832b2863e8e83d309deae1e8af
BLAKE2b-256 checksum
How to use checksums
6d04c8b3d028d7f11a96cb73685c9e051e753891af8f9fe760702a0fe7af502d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL zen_engine-0.52.0-cp314-cp314-macosx_11_0_arm64.whl
Size 4.9 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c2aa55d9f2a6193ec0089c27bb77539dbc9307f45f76f48587d9633391e4c9b1
BLAKE2b-256 checksum
How to use checksums
cf17707e375377dd9438b1c0c1a07af442501ec8d947e4f14e0fa910e2ce9beb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp314-cp314-macosx_10_12_x86_64.whl

Download URL zen_engine-0.52.0-cp314-cp314-macosx_10_12_x86_64.whl
Size 5.1 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3b4557f7613d331599430bccdc6f681416f98b95e8e707984a5c196f9d75e3b0
BLAKE2b-256 checksum
How to use checksums
bef01971816f8a11b641ca9c0a9ade0669e9cda2a8d5c91eb04f61fefad5633c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp313-cp313t-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5ef197bc523607943b7f0f7662d88d74d2cca5caf5d848a3b1d86efd16d074ef
BLAKE2b-256 checksum
How to use checksums
4f3ecec0827b3ca1850f9fb72e8b6b8c7385618b166fcc792caf223f9be44ce6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp313-cp313-win_amd64.whl

Download URL zen_engine-0.52.0-cp313-cp313-win_amd64.whl
Size 5.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
00cd68cde3546e85278eb79a32040b3f258a3d3b1918c42d2c51a02a738344c1
BLAKE2b-256 checksum
How to use checksums
32665b733987ddd6eada4a311ed9ac5e3c3836ce364ef7b3a38b7fc35872e0c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4645c3d536762b94e6b68eb8a93ebf44b13619f024dc0f3d9d1a3c91001329c1
BLAKE2b-256 checksum
How to use checksums
f26eaeac906a2ac552ae9a7d007cc95e172a622903f984aa66d176725e04a532
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d391999e05720dfff6e5b8f30750c3659040a94d00dabb4637638cc9f4ef52f0
BLAKE2b-256 checksum
How to use checksums
4784fe1e0f8bbe4d9970dee5613a8d8f546965d8ace2f48a1d49026cdef190af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL zen_engine-0.52.0-cp313-cp313-macosx_11_0_arm64.whl
Size 4.9 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6a74782b016812e36ac440290e60d570540972df60eea8b726d5c09d40448c72
BLAKE2b-256 checksum
How to use checksums
7be85708a94013fd8f3d7044e2ef7f056366a844427fca68d83a939fa0f208db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL zen_engine-0.52.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 5.1 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f05af3850e2f0ca031f8d2da9b94995365850d554fdb41f7587de7d5be3c2adb
BLAKE2b-256 checksum
How to use checksums
23c22368d0373540dedd2f849cfd937a427188ad72811d31e6e6080b1cedea50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp312-cp312-win_amd64.whl

Download URL zen_engine-0.52.0-cp312-cp312-win_amd64.whl
Size 5.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
8848efea4f1fef98b0232094afa1daa243a329d49380a9cfba7577fc15e5b140
BLAKE2b-256 checksum
How to use checksums
e074d81489179e695e2b8e2d940329aabbb7a5d17e7c19cdbb3981e55f71c78b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2cd500aa03d7a35c10db8bd1ff0af2855584488c622ff266b29e375655aa6984
BLAKE2b-256 checksum
How to use checksums
e5aaefc6155a35c1a11a622022e4aac3e7273baf217a314c356fe0ddcb9b2807
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
bffda83d087103498782fab360c700d3bcb2b956f520bf57e0d701cef0fd08e3
BLAKE2b-256 checksum
How to use checksums
737814a3f7fdf6f119465c59567734967768640d7f6312e1081082f6777ee81a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL zen_engine-0.52.0-cp312-cp312-macosx_11_0_arm64.whl
Size 4.9 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
202a428b996e9789f2012fa445950180fa977cca60a8f5883546c60b3faac7ba
BLAKE2b-256 checksum
How to use checksums
f7f385ae47dedb0b51b3033e7cfec8aec0adca19deeb1c12377b3579819fe47b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL zen_engine-0.52.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 5.1 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7329004a177b580bf8e54bc39b5e0a02ba5c3e6b5a7107a398fa5f36065288e4
BLAKE2b-256 checksum
How to use checksums
afe727a8b827c167e1bf021486991c61e16c9a397843e3f060baac44982188ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp311-cp311-win_amd64.whl

Download URL zen_engine-0.52.0-cp311-cp311-win_amd64.whl
Size 5.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
738476f67a231bee39e71610294e995578fe6a1c609c7ff6cce29c4cef49d3f1
BLAKE2b-256 checksum
How to use checksums
63300ea38530cb93dc61a20736e75709cf9e54ced00918178c386c1c12d5ff75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
11f37f7edea245095ff18b8a5f4ea4aa64b47f7bbedb0aa46485f6cfb1fca56d
BLAKE2b-256 checksum
How to use checksums
d7f04b23360b025923b2d420019b56d915fd8cb88d89a043aac8ec086cb56d66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d27f6d1320fcbe52dd2e564389e12c94230a5dc98e2c56c73ed6e04ab864ce41
BLAKE2b-256 checksum
How to use checksums
1e8c65c75fe6ae4ad81a42ffb7451a435898f6e69c3412876fdcafea83c70b56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL zen_engine-0.52.0-cp311-cp311-macosx_11_0_arm64.whl
Size 4.9 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ec684593efdb347cb8fbd082bac5f3286192ca14284a815bbd6f63759e339f06
BLAKE2b-256 checksum
How to use checksums
a19d89978530076e36088b4039cf67ea9302cc3a4976bec86f09f22cb1b652f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL zen_engine-0.52.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 5.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
4b983735a56bf3a3a2cea3d51c78bfcbcc0ad8f8e697a951526717af7a4f6123
BLAKE2b-256 checksum
How to use checksums
27a3024e2c8a315cd15bb12edeb2dfc02368eb98220d10507c979b23f039b3fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp310-cp310-win_amd64.whl

Download URL zen_engine-0.52.0-cp310-cp310-win_amd64.whl
Size 5.5 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
5f519b957d614bf19950a420cf45123527dec04837d48203247c7ef1d8fdade8
BLAKE2b-256 checksum
How to use checksums
5e471e4341bb05764eb31bbd3ebc1fbe576572e6de045c4d75003151874661e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
20385c46013ed2ebe0f8e5741253e97d7d83b4eb9b07f4d3930739a00b0fda64
BLAKE2b-256 checksum
How to use checksums
dc1040db02b11e4d8c4785e7f60067f6e76b3f54b43f9fc21e0fc29eefe2a6dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9cec2d9747d7fdfb9977fead9462951ff21376ad869164a02f9d35ec0ab12d84
BLAKE2b-256 checksum
How to use checksums
33f9328820f5d57286869270450f594785562cf07b973693b9e6ea1b9257f771
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bdfe8cc1eb07ff07bf8bf64852e68597a49761d15f1e9514f7851272dafbec10
BLAKE2b-256 checksum
How to use checksums
c6607d28d73e3f85df3d0fc8d41850a2bd9eee18d990d7736b5eeea1eb934444
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp39-cp39-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
58ac37780ebf7b10180b5f15f126220a58a55c0301f060a2c3a099bbfb8d30fc
BLAKE2b-256 checksum
How to use checksums
2d3ea74bfca030e674999818f54b83c941906d3112a158419fe4a1ecc4bbd47c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp38-cp38-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
466b4466013093beace3ca72a4605738433bf687bf9291ed4b01ed005c99cdaf
BLAKE2b-256 checksum
How to use checksums
35cfce14a182be8185fad56a0c56491b01fe2aaffcfd9f435b6d6710f7d064ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp38-cp38-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a196ccc57819e0fe76bc0eb4eebea1b9da5927dfc8622885649dcdf98864d4a3
BLAKE2b-256 checksum
How to use checksums
30ae71e0548e01bfe769ed3f94e07699159784b0b5580c977b658dc449cd62f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp37-cp37m-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.52.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
983ef5970164e68f7df1811734c841f18db5202b02b17ba8deeb9d9ebb80eb0b
BLAKE2b-256 checksum
How to use checksums
008b65240f1e0228b2c1710542420d1b1ab5f37045cc99835428cab50dae776d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release files / zen_engine-0.52.0-cp37-cp37m-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.52.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 5.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fedbf091f8b78571bde0266c73cf2ec07966939e36533af07bf524c9434968dd
BLAKE2b-256 checksum
How to use checksums
359351087cb3f799b1402d3aedb4062d9370b750b209af17b00a280a5aacf51b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.12.6

Release history Release notifications | RSS feed

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

This release

0.52.0 This release

37 release 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