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

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.32.1
File Size Uploaded
zen_engine-0.32.1.tar.gz 172.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.32.1
File
zen_engine-0.32.1-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.32.1-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.32.1-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.32.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.32.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.32.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.32.1-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.32.1-cp312-none-win_amd64.whl CPython 3.12 none Windows x86-64 Details
zen_engine-0.32.1-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
zen_engine-0.32.1-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.32.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.32.1-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.32.1-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
zen_engine-0.32.1-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
zen_engine-0.32.1-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.32.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.32.1-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.32.1-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
zen_engine-0.32.1-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
zen_engine-0.32.1-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.32.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
zen_engine-0.32.1-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
zen_engine-0.32.1-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
zen_engine-0.32.1-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
zen_engine-0.32.1-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.32.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
zen_engine-0.32.1-cp39-cp39-macosx_10_12_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.12+ x86-64 Details
zen_engine-0.32.1-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
zen_engine-0.32.1-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details
zen_engine-0.32.1-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.32.1-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
zen_engine-0.32.1-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.32.1-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 100.8 MB

Release files / zen_engine-0.32.1.tar.gz

Download URL zen_engine-0.32.1.tar.gz
Size 172.7 kB
Tags Source
SHA-256 checksum
How to use checksums
62166280e55a4035ca6ddebaf067955eb79c46a79be738cff076720f7e10555a
BLAKE2b-256 checksum
How to use checksums
5a2667646b4ecc5d64eaa2144136729557f92fa313956e89048bf4004a3c9dc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
d7eee0c72453a375418da30b8d3c461a361f9a2fc097916c7ecf8fe76727cf5d
BLAKE2b-256 checksum
How to use checksums
680e08fbfc62932b0fddae9b0ccc4be2d5454caa17886bf0078169410ab266dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
1bcb6a8b446bd8d27b98b02f59119e597bb66229c815ae97e9b55235c030e79e
BLAKE2b-256 checksum
How to use checksums
6070f1df966e569c73713ad191e0a0ff62cfa46b4054bfedd135cab7f2d41bee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
915fd7e693e5bbcd9333dc7eabdf5220fa8761659d2909c8ba7e90882a5a6aaf
BLAKE2b-256 checksum
How to use checksums
83c595f86af2670c53faaa6c18493c3df444d6bc1e0edf5b50a6fe6801d37ebe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.32.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
bf4dd984aa3c4223b82733220bb385162079d0152b47db36fecd782410c18ee3
BLAKE2b-256 checksum
How to use checksums
e5f9e09fc86de5eb15ffb2493290f80733fc327e6f81acbade74633bfc6c6707
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.32.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
ace1d3e275c8f305dbaa7741b3f08d1f52712ca39ced96815ffb12491b677a86
BLAKE2b-256 checksum
How to use checksums
838c5eb4558616dea8e3c49b154ea3443e081a881fa12cd45ef9037497e2e500
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.32.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
888d21c06fe7301834a1f915ab58feb6aa0ca2d6fd8e0247b42f3c211b117363
BLAKE2b-256 checksum
How to use checksums
26ec72dcda993148dff3fdcf9cc4c3be3920b9761f73cdb968397ab840b73589
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.32.1-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
c60d9fe00016db7bfd0a9cb082a6441a9c894f2479f5f1a7cb347fd140b5c663
BLAKE2b-256 checksum
How to use checksums
b7ebdd8e547c0b67ea5800e800db5f90e398a71a471c80de328d3cbd72087b96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp312-none-win_amd64.whl

Download URL zen_engine-0.32.1-cp312-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
046d00ec6870823cb75f0bf9176df7b62d38a7aff07adbc722a4e9c6cac78748
BLAKE2b-256 checksum
How to use checksums
2f8e376b624373014b6c654a88177aedbeb8bd13c889fe9033e9b6ba9e3fcc3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ff783d9f331296765165e0be770f46a8e91da054fc7a6d425103b5220ca43db4
BLAKE2b-256 checksum
How to use checksums
85b3eaf143b2a73f3b3a6cf5e7449b40af0b31b49283965be9a9d6bcb2b10cf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp312-cp312-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
398ff5b5b1360b0d5d473288dee8e86fd3aafff8c1e8aab55a4a32b650a6a850
BLAKE2b-256 checksum
How to use checksums
e149144e6d71f3ac64c669d17699774e55d6561d41b3be6d6497d793b28ada44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp312-cp312-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
da6d23efbe5214c6233456b30d6a007fa5c2383f5e149915139703a4c7a494ad
BLAKE2b-256 checksum
How to use checksums
d6a10b300e713d0a793df20d5fc87b66e8e2580c5aac5f383244f11145844957
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp312-cp312-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b1f701c246fd7827c4bee828004724bac26436f5f192057d9a7f0df23ba20618
BLAKE2b-256 checksum
How to use checksums
898cae4688f27bbc352bb71737e186f9ef2c47626d4fd1dd536d54f4c7a0a6f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp311-none-win_amd64.whl

Download URL zen_engine-0.32.1-cp311-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
97970fcb5478d1afdffe341f72c814e5ca16a8fcf7d563433614fd802d8cbdf3
BLAKE2b-256 checksum
How to use checksums
c160fdd7c1b5f445ad6e58ded6fe64dd7c18fda1e6a1f67a80b831fbd478a362
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d289f12792982ad197bea9ab68d02ddd123d1b982bc36893a4a2aaadb2e5c805
BLAKE2b-256 checksum
How to use checksums
60b3343066685980833786df54d20611ae157de105917569c64f4be3e743ea5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp311-cp311-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f6986516274009f674b9389f634725506daf72e59884f05a64accaa9755cea6e
BLAKE2b-256 checksum
How to use checksums
8d2c33379998953cc1860b6d3704b267d476a8a54db098c8afd3d618bd95d3c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp311-cp311-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6e4d020446fddead19202fec3f97fc9328f6bd57ef8538a19437425824d424c7
BLAKE2b-256 checksum
How to use checksums
12bdb3942ad32785e50819a429d5f8ecd7fc9d52ef181490cc3e8c9053e99707
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ce7fb3335960146b53cea19e30ef8bb1e3650838304b9b57fb2e49e878279fc6
BLAKE2b-256 checksum
How to use checksums
55da7b5513385a2a4ee0e3f179b17eedea2d7fca4eeec2e91d540c938888da31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp310-none-win_amd64.whl

Download URL zen_engine-0.32.1-cp310-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
6e14d9006a93fa0b262bda93ef94a3a3cc18e88e8366a5cd2ccb2b357bc21644
BLAKE2b-256 checksum
How to use checksums
a380ed465fc2052b943a21568d338c271c15b8b0aaacfbba61025c22e9f09575
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3f44a53aaa595c3e5f81b8edb1039ca68551d2d1182b111424c0fec6344846dc
BLAKE2b-256 checksum
How to use checksums
437753fd46da452f622280ff66d477abdbbec6fbd0a3ba31caeb38c0c0fbb304
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp310-cp310-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
90b0da8436bc22376c3dd91ff7e57d1251fd546684ec663d43b7bde26ca99474
BLAKE2b-256 checksum
How to use checksums
83848f8f9d69ac08578917bf8b1acf6176dd3a2376b9bea3458f742cbe6d0cd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL zen_engine-0.32.1-cp310-cp310-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
201fc8ec281a19c63f09eb99c0d71145bccdc8d8d88f31e812957d3ba31f72cd
BLAKE2b-256 checksum
How to use checksums
920961746a3dbc244e6450faa05bf64b3dc0ff458205a6f0bec7343d4a37752a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp310-cp310-macosx_10_12_x86_64.whl

Download URL zen_engine-0.32.1-cp310-cp310-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
2226cf18368a4e473a37e2d905ece09ff6deedf4b34da1bd2d01f96d9edff7a8
BLAKE2b-256 checksum
How to use checksums
d094282800f2d6fb4c074d063ae8b48d422c8a37466aff50bc626a691f537231
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp39-none-win_amd64.whl

Download URL zen_engine-0.32.1-cp39-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
8250373782b874512e665733dd5945fdd157060183edee9dde11e20ce5c36765
BLAKE2b-256 checksum
How to use checksums
5d11fb6c71fcdb17714451ba40141ba6dc2832551fc7bbd6f468c5a8c8d88d7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f673a8a6aae69896f9008ca966a0e509f20e73107dadab5d9e26f12311b56dfc
BLAKE2b-256 checksum
How to use checksums
6a2d0d94814011fd9ee8c7bf5022d01b4ce06eba876c40f11d550d3c580f29b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp39-cp39-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
cebf2f014856f18ef2af301ba405fbe7a965fefa7144921af0933678e9ade51d
BLAKE2b-256 checksum
How to use checksums
85b7e1b8b9bc07b114137c4f5419f28d3e984ca1dd899b0b7ab23baa52f4c304
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL zen_engine-0.32.1-cp39-cp39-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0b27acc80c25c4047e1d71a237b6a9bccfa77e8fc161c5299ebbce2619b56d0e
BLAKE2b-256 checksum
How to use checksums
604045a77cb624e9fd2e31ddaf1a2e9f6eaefbff0970e1f5e3eb8983100a07eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp39-cp39-macosx_10_12_x86_64.whl

Download URL zen_engine-0.32.1-cp39-cp39-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
45f143607afd20b5c567d074184187a277c89f58656beeb55a783cb06f9daac1
BLAKE2b-256 checksum
How to use checksums
da2fd1217422de3e0cd60991ef42b5f72431a4c64e683e6e0ca3c8df1560b402
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp38-none-win_amd64.whl

Download URL zen_engine-0.32.1-cp38-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
fa8b48cf8a702cda1875b37b544d0a15672dae10d70cafd4e06a1c1e54268fb6
BLAKE2b-256 checksum
How to use checksums
1c1acea20e9a2ebd4ec69b6c34ec434af2d55c0d18281ffbd9d33d7e05e3aef0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
840ba739606c54ef2473ad0deb2961ece24efdc0054f209ee1dfc323cc0c1903
BLAKE2b-256 checksum
How to use checksums
e3f0c23ed63aec1d28018ff983903a00d2c5b182afcd1234e01b09312573fa83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp38-cp38-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
18bcc29e920d614d0a75e56cb505e0df7668cd7357061018abb7b435dca786b0
BLAKE2b-256 checksum
How to use checksums
5c1c83530e642956a8e129c82d32df71a9d77db22fa7339a50a389eca4437b03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.32.1-cp37-none-win_amd64.whl

Download URL zen_engine-0.32.1-cp37-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
cc8483919232b9988411b749bf4b0e218f7576294cea70771423f0d04eb3025b
BLAKE2b-256 checksum
How to use checksums
f7a300f62cc9ddbf5bfb1b89f78925b3a49c4882b009fa7b8fe4cefffaffb022
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
eba08124df250231239eed6fa3a1a20e86a9d00629504a672d654f7599c7ceeb
BLAKE2b-256 checksum
How to use checksums
19af010f0c5cb9549cf32fa9a9d60b23a1c478ba746e72d31f9375900e67e780
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.32.1-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2fc2da40081953e77ed616d240101d3409eacc19112d2297a2d35cdbd47bdd7e
BLAKE2b-256 checksum
How to use checksums
2df145ef44a7d9866b7e31ce24ac7bc297662744c7c7bfa587c13ca0cfe45147
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release history Release notifications | RSS feed

2.1.3

6 release files

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

34 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