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 ✔️ ✔️ ✔️ ✔️
linux-arm64-gnu ✔️ ✔️ ✔️ ✔️
darwin-x64 ✔️ ✔️ ✔️ ✔️
darwin-arm64 ✔️ ✔️ ✔️ ✔️
win32-x64-msvc ✔️ ✔️ ✔️ ✔️

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

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.50.2
File Size Uploaded
zen_engine-0.50.2.tar.gz 294.0 kB Details

Built distributions (wheels)

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

Total release size: 193.6 MB

Release files / zen_engine-0.50.2.tar.gz

Download URL zen_engine-0.50.2.tar.gz
Size 294.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d70318b03af08f2212dee4c5e4d675a2b54a447e69cb4f66bb08bd0017974526
BLAKE2b-256 checksum
How to use checksums
e6f67bb6223742d7485d2f993c93a6b63e3adfaad7bca2d0f2e9f7a79ed3f50e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
63163f9e9e198e9cbea7abf165202ca32b571aaccc698b38943944d9994f4ff7
BLAKE2b-256 checksum
How to use checksums
34a331143985ba36eb4b0619c3effc1bb2b01414ea39af1d9c11a8b9f15e4a63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
bb28348b409798dfa73daa4f900e37789f2425b1d89ec286cc1941d45ec34cee
BLAKE2b-256 checksum
How to use checksums
c2862fe02b5c48c399167029d41ef8432861050c75b777faba707c7a8102a069
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
e697f9fab8c646e0838d160087c1a9b31dbbca2c72faa4b627c493b8d1311b82
BLAKE2b-256 checksum
How to use checksums
03c682e2f886471a3ef139725d44f931808ebaa34bf6f3db982b438709d48143
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
d111b44f4d150f498282e9cc4f4eebb4647478711c8a9a36bd623c214a18da2a
BLAKE2b-256 checksum
How to use checksums
0a88c4a7421efbc18ada87911dc033dbbd072a9bdb24562059af182198b1f57e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
74993b056e4986a58a092757168fc9c43db57fce7dc52dee03b4650320c60e6b
BLAKE2b-256 checksum
How to use checksums
ef6451796f818a169342d34bf42ef0543407aa460e95c1f518d65bbc30761479
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
89324613edd73a0ec8fc3cac900c8deaf64b677584e7bbab69440c525e16fbe1
BLAKE2b-256 checksum
How to use checksums
4611c4506a9ada9d4a9e23c2b36f3387f6074304c4af5235479b01710f601fe5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-cp314-cp314-win_amd64.whl
Size 5.5 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
86654b5ef24843e0a3d68fe34bfebdce07aab6e598c43b3ba5b407a2e63c4823
BLAKE2b-256 checksum
How to use checksums
7e3a57eb1b6b3b36118c3ac3a5e91a0132e72d9ca3e83fa62ce25f45b22e68a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
f5844ca11ca6ebdea73541a00ad020619d9b8c8662259ffb9b19e3ecd20276fa
BLAKE2b-256 checksum
How to use checksums
b53725c50823c08241c9861db9a2d12661d10dd74b95f801e4f524ade4ca77e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
b6e37374c8aa651ba10c5588ae4e22d20c2c9cde1d0822417677119c3bf1f24a
BLAKE2b-256 checksum
How to use checksums
e5740b10972ecf5f5aedf6dccc8464c35e5a21a6992869dc646b3a3f98e9d44d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
968aa2d768d0aadcc674900d901a828abebfeff72386af62e919b2d8753d8369
BLAKE2b-256 checksum
How to use checksums
191f529c8afdcb83f96629e5c45a9457c04c129bf17f3beb8b9369ecf01dc2f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-cp314-cp314-macosx_10_12_x86_64.whl
Size 5.2 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5b6546a2db48628bc9220d9e8d518aaf9e5c718e6d5e179097e947852d1aebba
BLAKE2b-256 checksum
How to use checksums
c0afa2afd48990ca76c6b4f776d5dd7f0a74cd2d8b4dd413dec5acb65f2612cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
ba1fdb292eec071975522ad71fe865b96a5658d130a4d8f731f9305f759c9cd8
BLAKE2b-256 checksum
How to use checksums
beda0f8c13170a57f59ca79ff6de4e9595a7d6696a6f303c4036a5a2660571e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

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

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

Download URL zen_engine-0.50.2-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
e9725b5f129f2d4200fcc0d10236ea25e67a7532edc711b0b5213a9946986333
BLAKE2b-256 checksum
How to use checksums
faa8926a82fb22b3b0d69a3b469550d800bcb04a11e3c503758015b4fd3f840c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
e55054e6dbf451206883b676b8e19cad013890f2f718f9a74c55f5dcf49dd751
BLAKE2b-256 checksum
How to use checksums
8c723edfdecfffcf30f52fc0106c2991768a1727cc3960d92cb8ca7a63fa1647
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
3927ee7a5b1441b0acd220715ab79328f8cd2bdca5b0592e3aa7351acae7e997
BLAKE2b-256 checksum
How to use checksums
98ab10f1dff5a6ddcb489783ab9328e4f6c9c0e215248d124cb32d9e1149555c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-cp313-cp313-macosx_10_12_x86_64.whl
Size 5.2 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
8a41127eab0b191de9a32b3ad6d10391d38a3523a9452b5471e61369a6e196d1
BLAKE2b-256 checksum
How to use checksums
95059bac56c3c1ab89754027ac291524bea899c14773e00e913729df6902c602
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-cp312-cp312-win_amd64.whl
Size 5.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
9f950cb7ebcee7e3dd8730c00d6eff82e2980c758bc5731e88f11d9411919c44
BLAKE2b-256 checksum
How to use checksums
339ed12acb4f411b206f0cd4978589992cb77de4ced19f6fc422cfc857a6896b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
d0c4b89f5263a7dfb2c807d535c5f2a28073397ff1c953a85953ffe5a9c5a0d4
BLAKE2b-256 checksum
How to use checksums
08542e777780c211f45677edfcfe96cd05f133bf54a07e2c9805b4493af41d71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
24c8b0779e56cbe57d130c2f570e493c8acb46444ff95d1863289bdedffda608
BLAKE2b-256 checksum
How to use checksums
c797df2211448b4807202a59a6419fcb3b3d6eef422d6ce080299271b63ba132
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
af666cb63707a5f7e6ae21b2faabdb94130808d45ea227446b1ec5b8f110a98e
BLAKE2b-256 checksum
How to use checksums
9b3b77da21e84be265469f627f141259a7eaa0490625192bd18c4ed8ce4cda1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
3135e0ae132544f81510cfd2655e74dab3abfee2c73dc9ebc6f5ad808ef1cd3c
BLAKE2b-256 checksum
How to use checksums
b2fc1c091989122a3f961a97fbd448e70c229ddcb026c57b69a6489361cce268
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-cp311-cp311-win_amd64.whl
Size 5.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
908757199d9cb024c1be69f5ae5995e650e573a28e22ea55b04f21c4f35beec9
BLAKE2b-256 checksum
How to use checksums
48a4421a0397450b8f55e6dab3e2ba857513f9c70de99c427a9d5436d2a48c6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
a93d7b51aaf9d405377e0667689a99f533a56affb38749836419d46c8f7222dd
BLAKE2b-256 checksum
How to use checksums
7bfae355dff583659327a202d531b2fc7b5a0c2cd6e98e440d4c7181b67932d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
f469ca643324a2aa8a0fbe047f41e8e8fa5a221ab764e01647ff17a5290b4a0b
BLAKE2b-256 checksum
How to use checksums
8fe163dfbadf87ebd1cef8f4f666d6e90f1b53f7ffb43fbdadd75316b9c432f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
9ab8026e6eca662366a790b75f57fd43fabeb19311ed37cce32125e44c0f1593
BLAKE2b-256 checksum
How to use checksums
ab63f4b905f2d6264ec57f36717d9c06272987b8fb1018f0e0d0cfe1f0a24c04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
92a14d72d5d12685cf0720295a3aaaaf53f3b5d942f095ad75769296bde6aa8f
BLAKE2b-256 checksum
How to use checksums
8efb6415c63414d8ef862aedf4fd1f06198537bb0fd6dc64314f7d586219806e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

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

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

Download URL zen_engine-0.50.2-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
199b5ff93497ec2cbee00dac1d84724a2eba53e050f854aa9779731789ee5baa
BLAKE2b-256 checksum
How to use checksums
527fa298e3eaabc8d9165c47b09a2b5a46ebd97f4590e9c8b4680e083ecabd7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
2826a0d475d54ec9f4162de1a4a8882b27ade392f563b0e929356546d04d8fa3
BLAKE2b-256 checksum
How to use checksums
aa0acd8f99ef2dd672c6ff59b0fd03201a5d197c6d5a744a748050aa1f4687fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / zen_engine-0.50.2-cp39-cp39-win_amd64.whl

Download URL zen_engine-0.50.2-cp39-cp39-win_amd64.whl
Size 5.5 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
8c876b60d1e716cf6b5b46ead014fb1131dded027462f401dcb0c8c5ce78b124
BLAKE2b-256 checksum
How to use checksums
ec2c77c1b7f39ee8ad7d507e338123b8f44337a07127230393425872b316bee0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
6e82a8bc29d9dddd5644ac0bb93d9ae25daf6c60dd449f3caaf252df484b796e
BLAKE2b-256 checksum
How to use checksums
d345a2df279e112492a74c3e5a5b08579fef4b742ad9cac4bb738803ce16b102
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
0e2284fa7ede4fe4866df2184f039c8c80c3cecf5b15f34845318a30dba6e83d
BLAKE2b-256 checksum
How to use checksums
5355ca930a82a7ad01754861f99cfea82bf294e0374bf692adb18d13a38da9f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
2260edd6dbe98a6f485d998c5e6f46a52429ef7c642c47b33d8ef3be043cfb50
BLAKE2b-256 checksum
How to use checksums
78bfe41cd50113b351e2e68289fa5f2816d7b98a7b9fa6cbe56f1aa7f37989b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
b74ef35b75053e058666c88331a9e630f867fead13dcab95d35e61d97786667e
BLAKE2b-256 checksum
How to use checksums
93f33ad8a1826f31547c9511ac554fa5f5a20bfaf04101b024c94dd7c5d9b914
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
4e96554a249ec3b24c748f5b833444ceeda091b16929960ef772113fb1f2cbb3
BLAKE2b-256 checksum
How to use checksums
67be84382c85aed93faeafaabeccc42da865c01079bdda4730493acfc14e9e58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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

Download URL zen_engine-0.50.2-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
56643400281a0ee7f98751eee72f0e5ef08ab28d1a5ee3a915c3c6b1be7ebf19
BLAKE2b-256 checksum
How to use checksums
169a9f0805eccb78541790bfd9fa5e98cb9789451c2492e77a530003275f6efd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

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.50.2 This release

38 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