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.47.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.47.1
File Size Uploaded
zen_engine-0.47.1.tar.gz 197.3 kB Details

Built distributions (wheels)

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

Total release size: 129.2 MB

Release files / zen_engine-0.47.1.tar.gz

Download URL zen_engine-0.47.1.tar.gz
Size 197.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b6f8ba5e8915fdc7db10209c1338c391a16a2b13f04060d34fcf7cea76a2003f
BLAKE2b-256 checksum
How to use checksums
8ac2667563fcc57383c505e28d1fb1ef703228a94fa17ae99c358e93dc7d2167
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Size 4.1 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
b13d42e28057fccfcad480a35a8f42bf91c5e7c9b4077d46843891555cd06ea0
BLAKE2b-256 checksum
How to use checksums
7c1ee1e0031e967178091055288d4bbe303013829d6927efaeac20f2e68e80e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
54c04279b2599685fe363b34b312185cdcb4314d72c658bf33a735b984a4cbdd
BLAKE2b-256 checksum
How to use checksums
3f0e07e5402620283fc1ebbe0f2bab2625d0d1c8b07bcd65e197a2f14c2b0b6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 4.1 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
d0b1a0647e7e7a0b12f83a547924d0fc650f0a3cb5ec06d870591a5420c6b38b
BLAKE2b-256 checksum
How to use checksums
3e184b82ece4f317214c1dfb4cbda4ee0c4a597407ecd02b2c460b02203e2f23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
59f772b52df1733c313a2842edfcbaec886fd935e26fc42a5f2f725923804213
BLAKE2b-256 checksum
How to use checksums
069d1cc37bf9ae54141aa1b04af6f092b1920dbbcc302dc0bad0a49c0ecbae66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 4.1 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
3f905b7e478b99e97e99f3570c6d2f07e7d13e70e0f4d8ae3256a08e4d04673d
BLAKE2b-256 checksum
How to use checksums
771206a7ec18fad0967053e500408021e0354bf926de594a861c6add169d3f05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp313-cp313t-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d0e2f2b19c02307d4844504d419421edfba34807e8f5a6157a9b418e55c80e71
BLAKE2b-256 checksum
How to use checksums
31020e110c1c14c25d5288f40df78138183931772df2b222196408a19e95510c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp313-cp313-win_amd64.whl
Size 4.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
3ab8313b6aa1974d5f1ffb043500f2f9134645a2b12e0c03a9fff1e720570d08
BLAKE2b-256 checksum
How to use checksums
080460f19adf53ea3fd101ad16ced566c5d7d2fdf87aaec0de54e0d8ccea0d30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp313-cp313-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e1558a8ca0b6daa8a8ee50f3534a4fe9e0531eb11f59c3b9e283d38ef4a7decd
BLAKE2b-256 checksum
How to use checksums
4af25e5b3904605ab2e728804b660684103e4bf45b0508fd235fa807c82d0013
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp313-cp313-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
566b1c335ebad50bc12360e5799cd83e5fa410dec460a84b5ef2235949d4f6ee
BLAKE2b-256 checksum
How to use checksums
a1c70139d49a261e087dd62fb1eaf1c229e0229408a71f7c382325e330703d1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp313-cp313-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0a3c76e9f03dbad8084324849f77485de718fe0bbcfe7bdde5d0846f11a0375c
BLAKE2b-256 checksum
How to use checksums
903914697af7a3b2feda60768d7126e536123413accbc33cc8c3b4ab2cf79da1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp313-cp313-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
da72a54ccd36caf71d5a7209b8f48d19f35f725c88641c26f766e5876570e044
BLAKE2b-256 checksum
How to use checksums
4643782704e29c344bc6ce405826c94623ad20e6027330dcbc199dfde01d8c77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp312-cp312-win_amd64.whl
Size 4.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
d9de6c45f3cd63fc92ee41f5e41488f6fe7cb561d620eec09c1bf95a7d121c07
BLAKE2b-256 checksum
How to use checksums
a6cf49fa9badb91579ea0f1afc98983f6fc4eb2fe9b2b92dd042576cbde45719
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e6194162e062f344ee5bf7a4b4aec7c4fb1bae29ddf610c4f95a7b0f946ce241
BLAKE2b-256 checksum
How to use checksums
e8f5e8a158075b394c0c232555231769f6c90a396d12233f6a5aa31fd0bb89b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp312-cp312-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e812adaea2d11dca0b844b3834c4a465fe79aebd9b8b44961338468b00e150e5
BLAKE2b-256 checksum
How to use checksums
6b2564173aff92b5ff8a9afca13a6069b4a6aaf3dffe559a55276cfed21bc617
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp312-cp312-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f2d135696e3d1a1f3e897a740d2122cbe014b3542ba4baacd7eb96d194239910
BLAKE2b-256 checksum
How to use checksums
85f3a9049433af0c66777deb44ab79f44f47fc95d6eb7235617e817b06bb337c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp312-cp312-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
89b6ee4a310b83c59f619fbe05422c13df87de864c5fb633a01ba6886da6e426
BLAKE2b-256 checksum
How to use checksums
0beeebaf0aeec7760839b7b5e1cfcfbd85e64ca32a2620c6abfbbd70b0d39620
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp311-cp311-win_amd64.whl
Size 4.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
88991dec6fb1634eacf915f7381c1c6f125cdb804c7eebd71ad1cfef9c97c9dc
BLAKE2b-256 checksum
How to use checksums
257afb176d44719d3a3f957a83e894369de0605f9880a95d0a629b9edafd973a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
17a65e87530396fb0aa8c566064ea98cb6334e3b50326381c5b0e274ab36d816
BLAKE2b-256 checksum
How to use checksums
386993a7908b992557f50a0536c1dfb3eac3458dc86df734b2ead3324fad3002
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp311-cp311-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
da1209e319fbedad8f822de2c7ea2c1049f900dfa8af70a72cdcc60d657678f3
BLAKE2b-256 checksum
How to use checksums
bfe7202d81dfabdfe4d939a83f496f807cceae8b0381ec359c0def4713dbffeb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp311-cp311-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b03708d4be63bdcdf1e9d31c6d7927f763e74bec220d7ed9910f50d0c040c2d9
BLAKE2b-256 checksum
How to use checksums
3261f4f8a183beec8c56229508d58d50f8f1344ee26351f83ab964b92101ed5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp311-cp311-macosx_10_12_x86_64.whl
Size 4.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e4edbdee3eb727a7d4febfb61029e9b4e239b693b51fcdf7660a90f943324c1e
BLAKE2b-256 checksum
How to use checksums
1f51764b7e779259b53bd8147e9b4bdba0ebeb5d76426dc0aa49c7a650143d10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp310-cp310-win_amd64.whl
Size 4.3 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
99b0b6dd6e415b005a81a07af28973f3b7b9848ac1407d50b1599415ae520749
BLAKE2b-256 checksum
How to use checksums
5921bc965013f5be1089f09bf1094fa371d8191bf5e141e4489f3f665911bd04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
16c37cc0be0c245890e2bd8a9b17d7b4521d07e3dff1ce810e34de57b2ca85c5
BLAKE2b-256 checksum
How to use checksums
138811debba131ee0567c18d6c299ab39f2ce5c113377f13f61f76a79a6c2988
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp310-cp310-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c9fa0c11c1ef28c5d2c67e5ba070d710b5a10eb3f60bc97c609d824090090705
BLAKE2b-256 checksum
How to use checksums
be08897fba949fd3671ab8bfcda9ce043907af1d7c264ef0b6fb322bd5821f7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp39-cp39-win_amd64.whl
Size 4.3 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
a8ab95356df135dd2153f66bffdcf32067d2dd9e814aa3f0f5c0c1304f3736c1
BLAKE2b-256 checksum
How to use checksums
ab0eb4e2200cbb967249343d43808d76b47b94b1c87f12d5ae7bdf2ff0fbbb83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp39-cp39-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e8d3def4af8875e6c257e4b3857f18edd44e5c2ccd845a94a9ff834ed5e13aba
BLAKE2b-256 checksum
How to use checksums
953b97b0c635a67549bf6b2e2f1a9f4dad2abefa342808233d29357996c251d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp39-cp39-manylinux_2_28_aarch64.whl
Size 4.1 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f5141ea90ffd35ead4340cf538ce54a0cf3bbe1e61e893cb6c9881d72bd42003
BLAKE2b-256 checksum
How to use checksums
9de28d7890c8a0d1f6fdc69a912eb8f4d5704908403e74c9fe09ed722a374170
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp38-cp38-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
024d92289ca0a7a7d44345ea164d2cf4803ff218ae88143e19e9aca8f54fec06
BLAKE2b-256 checksum
How to use checksums
f1e2e66c8c5d752073f5cebbaa0649e65858a985dc119d04ddf1b067f8f603ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp38-cp38-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8d528e19c62fc48f886626014b3c95cd76dfd16a4f9a102e80451c6bec564a74
BLAKE2b-256 checksum
How to use checksums
353df1621f3796c33d1db0eb6e6b99212327b8908ed0034a2ed5afbb227926c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 4.3 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fcbe7efe5bb05e49078f134c986393c4cf42111b2bb53c5d05ed9b403fce6861
BLAKE2b-256 checksum
How to use checksums
4c3548bc00a6692f2ecea3948b5e76ba07b9c1d4b0ec0a3734ed912adf6f70de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

Download URL zen_engine-0.47.1-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 4.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ba58520ef198fb085e77c2dd4bb1ea699a3281d0998b7df9dbef4c58ea08ae37
BLAKE2b-256 checksum
How to use checksums
a3b69f4da6d9f78bcc2326e630c26a36934d9eed301c14c0b5cc611dd20fdbc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.7

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

32 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