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.19.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.19.0
File Size Uploaded
zen_engine-0.19.0.tar.gz 115.1 kB Details

Built distributions (wheels)

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

Total release size: 47.9 MB

Release files / zen_engine-0.19.0.tar.gz

Download URL zen_engine-0.19.0.tar.gz
Size 115.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e8808899637b40703466546e102019659bfc50ba4421ba2e9ca98cfbdb438932
BLAKE2b-256 checksum
How to use checksums
3e029c20a78a338877eb3b3c85e69d9e93cd552f37f5be90e6a2ee425e6c78d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
974715c2a4bd6b2da0d3d1c859a88dbf385d78afa1d32d80f30aff8fb98302e3
BLAKE2b-256 checksum
How to use checksums
625f3b6c5b39df16a7cb7cbc28f7474618a963e72732a2f15f3f936c7bfe3181
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
5d675450de1ed0f9727fa6a4faf73176d975855b50d8482ef008d3ff793112da
BLAKE2b-256 checksum
How to use checksums
2775e1fca5bf9dc4896fda9705e0ec5ade32967127bd5eb78c4939ef85ea40ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
5572c36c203326a6b67bc8f053be8af22e4f94a3808a71d668a615f41a60cddc
BLAKE2b-256 checksum
How to use checksums
3fbe121527063a8d05c9f3625bf987f2cd4fac1466a366520098ac57841ebdcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

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

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

Download URL zen_engine-0.19.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
42366394fe3efce5b9da0b681652cc34a002ffe8d79fdbfe5bd3cefd830ee597
BLAKE2b-256 checksum
How to use checksums
4a438914b55c2f0c52cb252dcfa355085e7b469c46cf48ed508a7df51c294233
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
4060873f1c3d2bc77adc598fae4e7910a3aed0fa242ae8daa15f738c4f1b34da
BLAKE2b-256 checksum
How to use checksums
922309ecf1d3054f2c2859bc17401271d5de4324ac62f943e711a4cf22bcd561
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
c571cf97ce01d83646d314bed43417292c8338564ca47f04eca7ad8f8559e30d
BLAKE2b-256 checksum
How to use checksums
8fce424f9e1bc81d76a425a86d3c5d24080228063d96c0ae5417bc54ba697ae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp312-none-win_amd64.whl
Size 1.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
1d0e4da8b7aebe8472d3e4dc51e47390587b239505b78cc89427338f6e9cc2b0
BLAKE2b-256 checksum
How to use checksums
7a1276717bec8d1a57b3fdf30d38eae577121d300f46d86c201f8257e86cba26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
021cd82e5ffd2f3aa3d0ee507d49152d099cf20a0104a04614cd4e4574198137
BLAKE2b-256 checksum
How to use checksums
affba3321b41d651757fec9e68aca0668e67dd722c956cd1d322c4b197c3f8a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0d5a5384a106538b93f4a2b98f29e63801594598d8d059177fd1f75de41c4c16
BLAKE2b-256 checksum
How to use checksums
e4b590f60c8e3c3b632bb95645996c65a32364ecf74e199ae3716827fb07a1e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
41fc214c0ea639527f68de7860b4be5e1fead54ffd3bb063ae7e22acbd0d8d6a
BLAKE2b-256 checksum
How to use checksums
afaad47efeb2fdc0d56f1e70a167127ac16070b0f16a15d1e511aac4d6c81117
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
c622315c636bcf073b8738f0303087b82dc229afa6fd759d8cfe3856b24c8da3
BLAKE2b-256 checksum
How to use checksums
f894e24a9793f9e30f35363c8dccdef9a2fd0b1c372ce1fb5cde5b63a16106f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp311-none-win_amd64.whl
Size 1.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
127dc1bb304e68dd6d3ba7b7e5e3e9218d280941588cbc81fbd667f9e2594ba8
BLAKE2b-256 checksum
How to use checksums
61f496438ac3304efe93067a255433b8b6d41f3a2cbeed362180d252bf39717b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6580730627c6d1d7d5a18223dc02884641efd99157aaaa3553b008d73533bfba
BLAKE2b-256 checksum
How to use checksums
6ee579529e7f00a9796a52d8a7fe338fb6fc8545037b8a07206d15de270ee56b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a83fc0f702d3a4ce83d9c801ba1e8b083679b96537fc1c838e66830e66aa7adf
BLAKE2b-256 checksum
How to use checksums
10071e14649646c73c26f75ab7ef7cb35d2b168bfe2d48906d121d98fae1849b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
be766fbd70b03c8bca1433cb1a6bda11e11bccb9b6722eab40e926ebc0526d0b
BLAKE2b-256 checksum
How to use checksums
31ccb2a93e83412b3a2e65f1ee286c16f339593083d0b2be071085958c4e0b2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
571d2dde0350f9dd4cb62f964f3d283a95706b7fef1d4fe6b43c3f1bd10788a5
BLAKE2b-256 checksum
How to use checksums
1fb5b6d9c2e1b81c956ddc4fd0e0bf63fda080ac7cbb0c5861f4ab14dae7acc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp310-none-win_amd64.whl
Size 1.5 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e9cb9df736e2b7f3a0efeb3791f77b4796d527ca96b3428644ce1629b98bc635
BLAKE2b-256 checksum
How to use checksums
01da05a1b93c085d09f2a36b2f0f062ccf7a76e0344b42472695ac4d7e3c5262
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4a8c49b1ad65bb83c2dbb8409f23ffa44df29b97399b0e2271b77e91c364015d
BLAKE2b-256 checksum
How to use checksums
b8d23db7909fbbd078a279c8845251a467d30f4286adbb54071acff3b47998b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a3d04f19769b986ecd66f472eebc82f111aa2c353d6ae7149f849380296602f2
BLAKE2b-256 checksum
How to use checksums
4f6141bcce9a40d3fcbba71144711373035975a7ff993d8b69229df5fd99b660
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp310-cp310-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
57fc1df1b268dd77fa8eb5ef3f0f53596223f235281212b3fd2616639ac0d700
BLAKE2b-256 checksum
How to use checksums
5c96dc5ec47406c1ceaed56c6e7fd4142def67ffa203eefadbe0ae8ae2da626b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
05391e43fbf74fb8c39a08e38e107f1568761e0a85ef6879c1e172deff022ae5
BLAKE2b-256 checksum
How to use checksums
904fb50c7d4ce46012e21fc29cca2710e1f9695e1ea94b4bbb351501e60446b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp39-none-win_amd64.whl
Size 1.5 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
a33e8ea13ca70435260608ab3b7529fc1319a87824d855b675ec6e3616786ac7
BLAKE2b-256 checksum
How to use checksums
5a98e6f24d42a47f269d6478ce4d3166c25e32ad3091c12acd90ffe0afc3fa50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
678fd6f45457904d824ac5225a7e522dd90d75ad76245114adae21e3d91c1469
BLAKE2b-256 checksum
How to use checksums
b81ef919be96b2b117b69dfe915468d0bb4ea75225bdcf4d6f38a0941f4a615c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f2ba51a0a36f5c46f00382ff486b984c69d7bee015a7696c30ba991fffab68e8
BLAKE2b-256 checksum
How to use checksums
07db1b308bdc6397a2d4e5e78ce9a21609af5aa659c9b4da95f1114d21d2dd27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp38-none-win_amd64.whl
Size 1.5 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
e8564bff3a7b747bb22213de6ce1ee63a4b0fca7f39d85858609799e730a8e80
BLAKE2b-256 checksum
How to use checksums
cbf737d9a4277ac0b10e985d39fa61312d926c3352438dc68672a28ebfd0948f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b3f9452c20b81e38f0cd02c928bcacbda600bb7456b3388eada308b210ec4638
BLAKE2b-256 checksum
How to use checksums
c3b7c1e3f74c8bb5a43f4a63bf837dcef62bf1beae970e35a4c68bb39d000e08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2d5b4a70044c671afa937cdc6d911cbea41b0ee1191e4dfd755cc1c0378420b7
BLAKE2b-256 checksum
How to use checksums
e6825c2affa4a74ac439d0b25cf688e71d4cf86dde6e6a1d30aaa3a69ad2ad32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp37-none-win_amd64.whl
Size 1.5 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
6d59d2981e43deb53bfd0bda8c008bf8d0d177641a3c293ca0663604e9593ac3
BLAKE2b-256 checksum
How to use checksums
5a58eb1a69a09caeb39a493cd79c5031627a21b8a05eba3389c3a0b0dd92b586
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
232d62e8f4bf00ca254822827896971ed579f96484af96eed6d42ca61ae5f696
BLAKE2b-256 checksum
How to use checksums
063f4442473dc6af5c6eff64646ee5be6ee4f10d38464456b222eedc36c0965c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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

Download URL zen_engine-0.19.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
72016854573290599d269669af2b753992f44320a08df7e74e0f108d33bd3c08
BLAKE2b-256 checksum
How to use checksums
671c119be76c33e027fb2d1c03392d09906e60dfba7bfc9d1222fb3da9a1d1fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.5.1

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