Skip to main content

License: MIT

Python Rules Engine

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

Open-Source Rules Engine

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

Usage

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

Installation

pip install zen-engine

Usage

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

import zen

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

engine = zen.ZenEngine()

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

Loaders

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

import zen

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

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

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

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

Supported Platforms

List of platforms where Zen Engine is natively available:

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

JSON Decision Model (JDM)

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

Understanding GoRules JDM

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

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

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

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

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

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

Decision Table Node

Overview

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

Decision Table

Structure

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

Evaluation Process

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

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

HitPolicy

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

The result of the evaluation is:

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

Inputs

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

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

Unary Evaluation

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

Example

For the input:

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

This evaluation translates to

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

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

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

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

Expression Evaluation

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

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

Example

For the input:

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

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

Outputs

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

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

Example

Decision Table Output

And the result would be:

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

Switch Node (NEW)

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

Conditions are written in a Zen Expression Language.

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

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

Switch / Branching

HitPolicy

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

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

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

Available from:

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

Functions Node

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

Function timeout is set to a 50ms.

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

There are two built in libraries:

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

Expression Node

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

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

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

Decision Table

Decision Node

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

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

Support matrix

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

We do not support linux-musl currently.

Contribution

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

Metadata

Release files for zen-engine 0.50.0

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

Source distribution (sdist)

Source distribution for zen-engine 0.50.0
File Size Uploaded
zen_engine-0.50.0.tar.gz 291.2 kB Details

Built distributions (wheels)

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

Total release size: 156.5 MB

Release files / zen_engine-0.50.0.tar.gz

Download URL zen_engine-0.50.0.tar.gz
Size 291.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a562e0af22312e86174de36e5b1891334ea7863db23fd60a7abbfb4afc519fb3
BLAKE2b-256 checksum
How to use checksums
dabe22dea139be009b6072b9f19c7a75c6e5d76f9dc5e233f56404cf87fd76c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
4c0e1716720718be9dbb028950de2f82a774880b2db0aebb247732c6d6c5e7c2
BLAKE2b-256 checksum
How to use checksums
377681d30177db39560d91e1981767609eb6e79845b21de84dfba69c8ef2d60e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
4a65a7e3b04a2a06ba1ff8416784ab09f9cd4e70a3b3688781e746d6cd77a196
BLAKE2b-256 checksum
How to use checksums
69f7860fab1978c6957e0c3bea298a6794385f8d00e28552711de96f28713779
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
d38645596d5f0d8c198a9166e0627fb62e388036f751a7e976900d0542827d8c
BLAKE2b-256 checksum
How to use checksums
37379a4b9c074b7cc9184bcf00598a6993d3016cc4e02b6bbf623f81cde8e5ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
7601d8ebc2b173d872336821c09b476f4a13b383850cb185e29845a415ede484
BLAKE2b-256 checksum
How to use checksums
c421f63190c970304fd7a8951aff6e26c83bb8ca81c322f2970048b661eda363
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
86711e6ba92a38c840e360541736a4711c65bc103c154e7ac2072e44520d50e4
BLAKE2b-256 checksum
How to use checksums
f774fe83948b9a01f33e5bb44399580c28ed097f061a752f1de18de744d4cf5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e8e4164666a66abd244abf49caabfc466f0ff2d5f212c4aab49a2658cda15f51
BLAKE2b-256 checksum
How to use checksums
0a5f93283f0d91847622cf1bf94382a0968d0be6f0b782ba5df72857ea1d2ca2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp313-cp313-win_amd64.whl
Size 5.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
3d23f21826dbf805e274af89fd2e2414f19397d7dcc740952c1247bb9c617158
BLAKE2b-256 checksum
How to use checksums
5420cdf21f90bebbb3691d5767e9cf789ca928e0346fb135477a62bcd8f6424d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bd749ca5691748d6196965733ccb29b86d17b1a795d14196a87d60911adc91c3
BLAKE2b-256 checksum
How to use checksums
8a12ded4c1aa71bff009d76c62bb1a4b332ab29028f00131a032c8344ca4bf5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6cf90581a68d0b17aced01c804398363d31d818072d32c47294db6c8a9cf6045
BLAKE2b-256 checksum
How to use checksums
89fa8484aacc3c791fb82fbc4a6754e4c8c91a3bf2f2f440c353d6dca706f409
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp313-cp313-macosx_11_0_arm64.whl
Size 4.6 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5f03f6eff16d2b7c5fa35bbcc436c8306662a9232c50cde902d9d298b0757c2d
BLAKE2b-256 checksum
How to use checksums
753baa88a4e5ee27b0e0a478629eda7dd63fb59c8e5a59482b03de0c694d75c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 5.0 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
86794b55a083aae2538a803d8d370c5fda07dba75eedb9299a6f81639ca21fc6
BLAKE2b-256 checksum
How to use checksums
076de5a173886d7d6a77ad6188abdca011b31bc4661359f9516007a5422e6fac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp312-cp312-win_amd64.whl
Size 5.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c860788cf038e63fdce0dcacf6887505fc577704e11c143938fd00de827d86ce
BLAKE2b-256 checksum
How to use checksums
cc90c7eb47d4c53a1a3c76cb1a58295e63dc74b290ed96d878fff2ed20c9759e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9848aaf263fbe4abb8bb82f9d74b082a161f76d43181d620258c87febc83b917
BLAKE2b-256 checksum
How to use checksums
3ce31855fb412ee512bab09add86e6c3088c356b7815eb0cd082c8d56a60fa39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
eb8633150899065c1d2e7afb64d4bfe74ea5bdd785182b4374c6aa4810533693
BLAKE2b-256 checksum
How to use checksums
c59b1a3b55c025c8d5a951ae05f36230fcd0b2a8ff543293d7717ae85f24cfd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp312-cp312-macosx_11_0_arm64.whl
Size 4.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
40f262c32a95e9e3e56741211a8b20376d1babfc389d9dc882f21039f9a9c7e1
BLAKE2b-256 checksum
How to use checksums
ac5fcb07d07ebcf226deea538c2a74c67558da01ac859abccf5dd2880b2dd92d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 5.0 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b4d31d1c46c07a9f464e1cea5b1fccc4414ecaf365ecae9270bfeb5b722186b3
BLAKE2b-256 checksum
How to use checksums
7adf7d6fd42386e65061732382577fd5f4ec0990844e727af3660fdc3e584778
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp311-cp311-win_amd64.whl
Size 5.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b49422bc8180ddd871ee16c14dd24aa89ed7d298448c5f5379f6a872eab83a20
BLAKE2b-256 checksum
How to use checksums
0957f9c649971ae5581ecbd033dfe47d0fdbb5d9ae0cea8da6177087f2f2ff8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bda8006cebece2193e42f086272c5d5bd215eecce37612b369321502511f2e5c
BLAKE2b-256 checksum
How to use checksums
1043dce3e9f4f8f99f4ed831912a68cc34d54c516de8005154f7a88f8e7aabbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0be509cfa4a41de84a716eac1e1a7bf9efc02adce559611d6586c9654b3bf58e
BLAKE2b-256 checksum
How to use checksums
04541f4b59af0b02449b168b8ea8b481dbb31308ce7c35d244fe23b7902fc9cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp311-cp311-macosx_11_0_arm64.whl
Size 4.7 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
36cfd1f70601ad25a7f5302f866cbbdcda11afc3f6aef8b9687b73af1a18cbd0
BLAKE2b-256 checksum
How to use checksums
83556296d3f120f9049b0178705a40c47799ffe85b0b78c62ab50d5e4b775c4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 5.0 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d8656ca4c2b7555333688f01ff90dec15c1efbe749f8a0d44d4b86ef8485caee
BLAKE2b-256 checksum
How to use checksums
f772f64e38a12da0768665831828a7c9bce9cd7af011b48c667fc77c2a560668
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp310-cp310-win_amd64.whl
Size 5.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
8edcfe2f20ff28b7d2c728a80fc51a5e9c98e09968ee9b71fcd602cdb43c865b
BLAKE2b-256 checksum
How to use checksums
22c1fca209c4620e1071ee89e4e1598aba6c0d502be4d0842e799624ed186734
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6a5e8ea51d80bff545593fac04f025d5e4b3cabdd41bfda30a372f0f55b2db3b
BLAKE2b-256 checksum
How to use checksums
9fc5ceb6c92775c2d3c071df11481e230a1ef7f3c8a2ba19527bfd6cef36c4be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6bc9c414739cb8c1f25e20b999c696fece1da9845ab891c3f295770a939e35d1
BLAKE2b-256 checksum
How to use checksums
7a5312c41f71d24c2ba91f92e3f5a87198d0bd6094b474c83dee1bc53c3db53d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp39-cp39-win_amd64.whl
Size 5.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
1a2eee1be552c2b4b8387d9214f9917e93954fbc6b38851cc8af231b68b23ebb
BLAKE2b-256 checksum
How to use checksums
0a24e65a0c9de19bfe7783b1448a53b6f4715bbc0f73f63650313941bfd9eb2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1e228dfbfe5f75f118b38f208ebe15bc7c09f4604a8d68b8137311bb88dae315
BLAKE2b-256 checksum
How to use checksums
e229558d0a0972926c6af9d5d5f205563ecebc6498e00e00ba07b5ff01d0fa36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
99c372a614966d5917a244cb13483c41d49b1f4754d676b04a1f7b8dc26c02e8
BLAKE2b-256 checksum
How to use checksums
4317ebdb6d1d2bb3f3c683d1f3847b8bb74890c3433ae9d91a4a99b096038035
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7d4c6a6ee026cacd7ff88f2e844ae37c03782e5ae66fb674e2d8462b2d6adcee
BLAKE2b-256 checksum
How to use checksums
52de48491b5e02b7b968ecdda8fa5222bd5fb510e92f17411ae00a13b4734582
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

Download URL zen_engine-0.50.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6cebb952f7a14148aa05403c7eb4dcd209ffe55d766323d45ab2fa7bf6c17103
BLAKE2b-256 checksum
How to use checksums
012e9b18d2faa20bf1248dd28c1df830c7acf38f3f2e875c51608fef5636623e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

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

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

Download URL zen_engine-0.50.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 4.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5e6aa13160b41613be5b6d972ba4ec83a0e0b122f332a740d523d0cc880826b3
BLAKE2b-256 checksum
How to use checksums
bad8ea7577dc7fdc7e071a4788735302cf0b84161434fad8d503a4e37099ff2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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