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.51.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.51.0
File Size Uploaded
zen_engine-0.51.0.tar.gz 293.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.51.0
File
zen_engine-0.51.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.51.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.51.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.51.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.51.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.51.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.51.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
zen_engine-0.51.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.51.0-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
zen_engine-0.51.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
zen_engine-0.51.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
zen_engine-0.51.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.51.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
zen_engine-0.51.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.51.0-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
zen_engine-0.51.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
zen_engine-0.51.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
zen_engine-0.51.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
zen_engine-0.51.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.51.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.51.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.51.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.51.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
zen_engine-0.51.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.51.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.51.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.51.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.51.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
zen_engine-0.51.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.51.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.51.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.51.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.51.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.51.0-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.51.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.51.0-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 187.4 MB

Release files / zen_engine-0.51.0.tar.gz

Download URL zen_engine-0.51.0.tar.gz
Size 293.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f593fd151ce953ebff414e13df6a57de53e5edd1f344dfa1b62af05b02512a9d
BLAKE2b-256 checksum
How to use checksums
174a73e388bb369c3e4df02b354272a0e8f28ee3ce1683720e54e20192b22b9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
577dc8608985d34a2097dfd2f95b16133a090e3ee81bc7a25ac8ea01430e33ad
BLAKE2b-256 checksum
How to use checksums
437224daad572de14e0b85bae16b6bac0ea36577a6d963439445dd0a21d90adf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
33305b4b7d821b7be713520f4ac68b5a30292be0f8ab053512cc4f3e308bab4f
BLAKE2b-256 checksum
How to use checksums
9947b73995bc947ef3ac2c040015e7411a87b6295d7f3af295e649944bc9d803
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
43f6bcdc9d99488da1b696ca3f9787a5f0d2f979ee13400152dac743770463f5
BLAKE2b-256 checksum
How to use checksums
4c4235b1a94ab5f3092c06f039e697e0cf82dd9fc4bd8e9e8d9ea018d10fca8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
1da990494a03d2f5c232954fd6be716af9ce0e67827b441ac0e22737989d141a
BLAKE2b-256 checksum
How to use checksums
0a934e6a1c66d8458ca62f51029f8ce7c526050afc72f2c7cdda4aa0c08ad61c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
7ac954d4ff93d3fd89951208707df87c9323542f930625a29772d1633a9b26cc
BLAKE2b-256 checksum
How to use checksums
024b7d39c59571d576ee4d1af844e1c35104ea117b31cfa99f27f4794459905a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
749ba79ba43976260b3af7d62f27495f0b1e905bd25fac1405790fa2c55fffa2
BLAKE2b-256 checksum
How to use checksums
bf8433a4bd91bec8dcd793bb1cafb01292ede924768d11de55b782498e09a54d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

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

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

Download URL zen_engine-0.51.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
25c7ccf4ee2a915e1e9d153f88468ef5ebb94afb72ef9d7efdd9ce4cbaee1c7e
BLAKE2b-256 checksum
How to use checksums
00732d33dc19de89981e78d2da990cdf8d1c4d4e76d2849e0c071c2f7066fb8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
6ed3cff766114791f4d81866d63997d027eb97ca356efd3fffaa0b61ba65100d
BLAKE2b-256 checksum
How to use checksums
699ec799c7fa154655c51dd5812c364aeb8605957e1ab6745b172c2ec072d4a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.0-cp314-cp314-macosx_11_0_arm64.whl
Size 4.8 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1d2a775f1a45acd50e5948c45f026350b3f4ac1d05e80b9eafc9ed4217d6e073
BLAKE2b-256 checksum
How to use checksums
3e66cff595503210dd391a998c571724c3e61604f04bbd9183238b6f0f14752e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
39f47b99754f9f9375de4f48f39efc2fe5e58979e6b62c571f55d818095ebe0f
BLAKE2b-256 checksum
How to use checksums
048f0314cfd4074e1d76772597de087ccc1ae12117e8541394ae88f8e93e4286
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
2189f58298b0fe332c6f0adfce428c610eeee8bb667361678940db87c0d81cc4
BLAKE2b-256 checksum
How to use checksums
d69c8d4c36201241081a848ff25363348bb51971a98bbf60e82bfcd336c55a67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

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

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

Download URL zen_engine-0.51.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
b5ba944668878d8a414014a910d61c9e5ac87fab88acc996e2bdaa8924a8429c
BLAKE2b-256 checksum
How to use checksums
ef06d809bc098e172b666dfb186a4b8dd2136a9b70737e4aea31bff3a3a3977d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
332542cf0045b6e1ee43e216547178de721a48139dfa88585f464ac47ae1fed4
BLAKE2b-256 checksum
How to use checksums
177d346a43e2687dd62e2724af20b908202dbb931a2bce90b2b1a35c45a0ea10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.0-cp313-cp313-macosx_11_0_arm64.whl
Size 4.8 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
75498e8ab327ca1a9dde24504527f66f3f82dbbcbcaf9e99031af5296ec6d1e9
BLAKE2b-256 checksum
How to use checksums
91dfab96a6da48b447747a5848727ad24f88720f394c2910ed793b326d97e832
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
58341eeaa00c667d53fa4c39eecdf6450af50ab02ff2eaf9aca58fa01c89c9eb
BLAKE2b-256 checksum
How to use checksums
98eea958b623a2060d0276b3c36d55d6e0bb0e95ea3c1e8f3c9c501d92092950
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.0-cp312-cp312-win_amd64.whl
Size 5.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3f34cb33eb1cfd70b35b5f0951dd6d27f7a4c5b2ed1e8b018ac87477782f49be
BLAKE2b-256 checksum
How to use checksums
72af9eb110732da77560301590f687b00d6b8c97e2c39073963e003de2ed2366
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
8fb3cb27050f28c0900d5fddff47aa93a4000e8f5e41247ec4272b3b3660f12e
BLAKE2b-256 checksum
How to use checksums
426721e07a4c6e264e47eb48d8ebac95aac5046dff5c408e252f6a5be276ea34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
d21a89ff3c756847b2c0f9b7208a2853b53fb98b1e656e052a2f4979b7220ac3
BLAKE2b-256 checksum
How to use checksums
5a1062cada13bdaf08615c07c6d2fccc36dc48457288c360b1f145987b9d60c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.0-cp312-cp312-macosx_11_0_arm64.whl
Size 4.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8a2af99b28e3311274370d4648625fef2f997438c6429d422168fba74050e5ec
BLAKE2b-256 checksum
How to use checksums
d097ce01a73fbdbead61635cf1151eba0ef10c7d72435be8a0a243627eccaef9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
08d7004bb4e0bbaefdd8707a73079ab549604f3dd5eafc99e67718f8768879e4
BLAKE2b-256 checksum
How to use checksums
dd643391e6d0a4a01243d4377065a77f1cbfd6a01ae2a693e494458dac63c08e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.0-cp311-cp311-win_amd64.whl
Size 5.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
eb5e41601e2d412ae689a3fd9ca26947a081bcab4b9f4505483c1d54090367c8
BLAKE2b-256 checksum
How to use checksums
8ed791313f3313b3fa7b8d377099e7d64faf43b54a128613417f578b26e1cdc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
683ad827032cf3257013158fef1cff60dbba4568583c440f3d35ad8738e78eda
BLAKE2b-256 checksum
How to use checksums
5168ec3e2821d4e89cf21cac648340063e99af63067ed5009952ef9ffd9ba90b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
b719bb36b1f34637485d3475499527cc6331536a4a15bf62e238301677722551
BLAKE2b-256 checksum
How to use checksums
15494292f1b1191b38203aa079359ae2d8a828eeaba567940e24b3f217ee4743
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.0-cp311-cp311-macosx_11_0_arm64.whl
Size 4.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e776ed53e4711bf044b01c43983a5d74c2418af521adef0ebbec609e96a82f8e
BLAKE2b-256 checksum
How to use checksums
2dcb8ce130115e79b4af2f6272407dbbbc0c1c8eee31ad07153ddb9a91edd048
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
fb2cdb667a41c98262f2d725f7fe7721832d00ce0f38a69714fa8ac42dc6bbb0
BLAKE2b-256 checksum
How to use checksums
8c443978f3323f3a5f55132250c2739f88f1d8dfa0bd62911c844e8cfe7473e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

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

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

Download URL zen_engine-0.51.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
ba16fe33ace6542590da4d7cfcf22f1b472b5568558089586727bea7608fad92
BLAKE2b-256 checksum
How to use checksums
7abd97cb1f84b52a1e69c34433cfe698dabf7b14fb3d6386038e17cd3c0c2798
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
9a12ef0dbbe51a06a2246653ed848eac296232fbf56017dd911adbfab7311c99
BLAKE2b-256 checksum
How to use checksums
2fa9f5c67ffb21f78133e6f6d8fd1423073272c0a9ad86b59242812c0f440000
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
b78e02427484dd2cbc4c07f48c3823d156ac9cefff3260cbef1cd82aa8142569
BLAKE2b-256 checksum
How to use checksums
510f2923e3e2916bc1139115a1ffb051997d8ecfcfca91178fe22a0f78a11387
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
b8b3abec614c44179040f28166b15ae48c0a81201a072b659136d6c0ec5dc5a7
BLAKE2b-256 checksum
How to use checksums
30844ca1dbacc6286f12cbc24ab245f0dee843a408c35b892f6c1c46f687f950
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
ea5560593c690e58153495103246e1725a348b566f1d8ed2e0bd230340450057
BLAKE2b-256 checksum
How to use checksums
2ff1ad444c895f6b4a1fa258437d647b20282195ef007bd03f01c95034dc1db8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
4a6f04c47c6e1555c236b7cce4fa3eb1ef30095daaa239cf89ff1572123b497c
BLAKE2b-256 checksum
How to use checksums
a649e9bbd66cf338e95baa96449df5e2c525ec2fa672b11a3a206022b5dae8ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
9f511b3c10cea1c64528708c9308dffdeda8ed398ccfec7ccb6d005f3c5671c1
BLAKE2b-256 checksum
How to use checksums
d4627f765e2ecd335884470d36c0ad415d121d395c020c8a205f97dc5b06a0ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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

Download URL zen_engine-0.51.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
a4662995c556912bda3dd665ce798496061c8f77d327a7b1911436831a5476b3
BLAKE2b-256 checksum
How to use checksums
882b0063590078575d30c1fcc21f0b78017eee902e9a99d58b859a86b7cc7a65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.11.5

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.51.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