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.26.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.26.0
File Size Uploaded
zen_engine-0.26.0.tar.gz 160.2 kB Details

Built distributions (wheels)

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

Total release size: 98.7 MB

Release files / zen_engine-0.26.0.tar.gz

Download URL zen_engine-0.26.0.tar.gz
Size 160.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d68897d310e4fbad3fec91d9125004502485657e8f685fe5fff7063bf86a1974
BLAKE2b-256 checksum
How to use checksums
44a8a407ff1c15998d546111bf718911454e083135855d0d4660118d4ba143bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
ff937135106960d50c7ace808847316194c2cd442f1adbb16a3f6a1ffd38c557
BLAKE2b-256 checksum
How to use checksums
6a95d4051bc93a832c6fa3527352f63b759ab3ad3e730c38100a96cdd14a2821
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
391823da8c31b12d3ae71ab7bb3ca400664976a0db569096f8430c9f1cfa0970
BLAKE2b-256 checksum
How to use checksums
351bac20847d4e48b540fc9533efbc7f0ba99d068d5c521ed5ba23b72413b75a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
551859cccca2bdcd094a3eaf026418221364f1ec8438834b6bdec13688f1a617
BLAKE2b-256 checksum
How to use checksums
7d084fb7cb05406cfaef298b719bba37a2cac48f6fe8976e79ce6b1a06401636
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.26.0-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
dd64654922f6cd44f92a44572e9f97d1aab940af983c1452a113dee864bd12e6
BLAKE2b-256 checksum
How to use checksums
70ceb4a0acbab70ec6f0013fc5306196699de5ef1e2ed155c9662dca77f31e7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
415c857fd521ae3c262cbdc4c28af6f96c336e7877fc27c43688bf2338dc29d8
BLAKE2b-256 checksum
How to use checksums
a8f30691c5bfdb433e26cebdddce1d487c46584cc7f44acca8579d13cc806032
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
559c2d5fe290c746b031b634d07ef07b4908d3d2a98d4993f16cac1c90985ae5
BLAKE2b-256 checksum
How to use checksums
07c17c73e49a24e0395d4c382f83f57b2b6588ddacc54ea7fb7c6382dfabecd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.26.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2695011ca15ce11a0e10f20f1d4245d0f20292be10a27e0cb8b7f921e6ad8be5
BLAKE2b-256 checksum
How to use checksums
3a54caea1e5fb15aaacc9c1b24684114e8c0ffdda1ab7140e32499adb2b0258b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
43da18b9d1ea2ee402399cbc1608604e135140c11446c1ee77d10c7425953b67
BLAKE2b-256 checksum
How to use checksums
406e0eb27726a94a8a175c87117c6a26e8833f078009cfbfce18db77a5dce2f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-cp312-cp312-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
798dc56fceedda7062091c92c04e217c3b5b99372c954468397aafdb16defebc
BLAKE2b-256 checksum
How to use checksums
5aaae9825720555f7bdea7a6265086a7d6fefb42815af147472d3a5997884f89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
6356590084a386447635f8f6b4763e3cadacb6185a44798a706eaac7ddb16597
BLAKE2b-256 checksum
How to use checksums
4571004af9a8523bff6c285e8c73866c69add66c6e95faf6a3331159ebcaf449
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-cp311-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
bd3959d254365acd9f1e0c5ed76dd2d16acb58827ac893161bf7577f58ee15c9
BLAKE2b-256 checksum
How to use checksums
6be13c21a2cb0bb26f7615fe5a69a6b4655a70f904f2014d5e979c9dc9b2dcee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0ab09bac24bb1375c119edff114754ae2956703d21c978f09d9d3571a390b2f4
BLAKE2b-256 checksum
How to use checksums
bac297ed4a2113cbd475ca7ab81aa022991f895ed08cf5fdbf5b347f216c685e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
cb199ec6e8ecf4576c74825872493a08a999147673da7b14bdf9d55b38289112
BLAKE2b-256 checksum
How to use checksums
3f7cd89dc3be77ba4671b15a3b12ba944ec4c2ba8312612fff83cd3be6c498d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
91b6f0e93609db49f019f4fcd59092976456c6fb85a60267fb51613cf6d59466
BLAKE2b-256 checksum
How to use checksums
46d6e04f75b776e1c9bcb8e8845caeabc748afdc7ef0cbb74a1edc6c1f3d41e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
7237e05f06f5e04458663821f18ff73cd7c3e57a18cbc9c164cbfe133445fa4b
BLAKE2b-256 checksum
How to use checksums
da8b9b71efd2c681dfad835b4a2514b1dfa4ba481901a6f858ffb5de59205eb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-cp310-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e5e715b71ae553a411516cae00bc5f0ef16ced75a411e89e7017ea63e07b8dee
BLAKE2b-256 checksum
How to use checksums
ba4f4929bfb6350a09183a8c663d6a0b493dcbcea8b96c0b76f1ee0257c643c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bcfac6ca4465b250ad88f04446e0e8baffbd1bfa99eab7f49f4b2db217045949
BLAKE2b-256 checksum
How to use checksums
c22ee29ac644597cb295b3ad7bd85add7f6f2f23e2de5168997081e0f2d08028
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
3a02ea2b41833273358f50ecca3f67e52546b47d0e500666eef6c41bcbbd66e1
BLAKE2b-256 checksum
How to use checksums
328be8a62afa37392fdb4233c47f8894c5c120fe5ee7740cbd0bcdfd9d70ed47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.26.0-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
a6f9a3f86cc0bce49fa07b188c4fda46168e63b159b5d9d59ce7e9d87e044bac
BLAKE2b-256 checksum
How to use checksums
74a976fa944fdddfbddda4286a984cd2e7b43901dc408436cb1df6d81dd36b16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-cp39-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
eced3bfa7cd7f4cf5c03e1c47ad77078f7bc27cb36cec11280587d0215319e24
BLAKE2b-256 checksum
How to use checksums
77fbf9391136d76aa097b77af6a839d7fd05e438aa1706a37f07103f97c46bde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
15bdd0de6d3d22fd0200e1c98390f3bda6d3c19e973bab489db0fda4bb66c43a
BLAKE2b-256 checksum
How to use checksums
aaa8fa63f6b9510bf6f005476f3627b6dc5a345e42d43cc6c761838acc94589a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
e289f2a8ee52b5ab465ccb9bf7fe069b0f0e1af220a3664af9c1b34469760a0c
BLAKE2b-256 checksum
How to use checksums
4276d1828bbd518960f1babda5172f56de89437be7e033c26b294b9375151a6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
bb771c86c19f07158f574e98080b5df49ef7715e12109be511fa8f54071e1eb0
BLAKE2b-256 checksum
How to use checksums
82465f02fdb3337312f5008ca9a282f56cd444f3f52628c13180fd9079d08570
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
6c2c4c32f19bd375180a8b207b68277f6338750ef54e0d053a7c22ea52ca2a75
BLAKE2b-256 checksum
How to use checksums
21e4bdb3b869ae31917d1a664e0211781b337a78cbbaf84cd104e0fd08624232
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.26.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
beea3d28ec92316b06bb3bc99e42c5c39c64df0e635115f44ff708e5e8b549ea
BLAKE2b-256 checksum
How to use checksums
04030cac508b802b9dbec5857ae29f89622318bb677b811830efa943020efc91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-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
49513ac73e25975e69e250d04c13af3545e00cdac35c22767a66fd1ef64b157f
BLAKE2b-256 checksum
How to use checksums
ef7c4ddc2058ce445995855d7188f91b4883dfb6177c285a1f1b1c2f67ff7081
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.26.0-cp37-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
30af329d4777690158f0ef1d86c7fe063770958fde2f81b0f59830d2286e5724
BLAKE2b-256 checksum
How to use checksums
93fd81a8dd4c0f7cc5c2fb986eafc73438ffeebe24025890499eea5350d4518e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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