Skip to main content

License: MIT

Python Rules Engine

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

Open-Source Rules Engine

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

Usage

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

Installation

pip install zen-engine

Usage

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

import zen

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

engine = zen.ZenEngine()

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

Loaders

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

import zen

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

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

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

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

Supported Platforms

List of platforms where Zen Engine is natively available:

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

JSON Decision Model (JDM)

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

Understanding GoRules JDM

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

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

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

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

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

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

Decision Table Node

Overview

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

Decision Table

Structure

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

Evaluation Process

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

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

HitPolicy

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

The result of the evaluation is:

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

Inputs

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

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

Unary Evaluation

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

Example

For the input:

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

This evaluation translates to

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

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

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

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

Expression Evaluation

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

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

Example

For the input:

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

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

Outputs

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

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

Example

Decision Table Output

And the result would be:

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

Switch Node (NEW)

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

Conditions are written in a Zen Expression Language.

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

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

Switch / Branching

HitPolicy

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

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

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

Available from:

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

Functions Node

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

Function timeout is set to a 50ms.

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

There are two built in libraries:

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

Expression Node

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

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

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

Decision Table

Decision Node

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

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

Support matrix

Arch Rust NodeJS Python Go
linux-x64-gnu ✔️ ✔️ ✔️ ✔️
linux-arm64-gnu ✔️ ✔️ ✔️ ✔️
darwin-x64 ✔️ ✔️ ✔️ ✔️
darwin-arm64 ✔️ ✔️ ✔️ ✔️
win32-x64-msvc ✔️ ✔️ ✔️ ✔️

We do not support linux-musl currently.

Contribution

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

Metadata

Release files for zen-engine 0.18.1

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

Source distribution (sdist)

Source distribution for zen-engine 0.18.1
File Size Uploaded
zen_engine-0.18.1.tar.gz 114.7 kB Details

Built distributions (wheels)

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

Download URL zen_engine-0.18.1.tar.gz
Size 114.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0b807abb48dc51a83333029909a17ef4f26a0aef4605ebd09b2ae1b3a4fe574d
BLAKE2b-256 checksum
How to use checksums
8334ff1b1ebeb388df5e2a6c66df8103e8c18be21315d2c10b486a7d102e27e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
bbf27957ab1f4203e0d9b0b528a90afdb80f47f00566b6257886c27911056ad4
BLAKE2b-256 checksum
How to use checksums
5423219500bf76cdcdd02601d46acb17f88a1440bc33df2ae0fc8a9fb862e1e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
531f58ae653afc08fbaf975d3828033c4dafdc2ba02d461a6133585d0dcacc32
BLAKE2b-256 checksum
How to use checksums
6044956b7207bdd43ccab480f7f9b7d61bc0a91614c0d8706be53a05e6b7aad5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
026f9f98714249c303c8c4e44ca83d2c7727f7b8dddcae4ca236ef26e9760ed8
BLAKE2b-256 checksum
How to use checksums
9b70010d8d7084cfceba699648eb35958926a284debf2aea859ace164e91e91d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
4d37331e9264223f2b14d19b2f719a622b9a5ec5a3e1b25972bf8a389078d764
BLAKE2b-256 checksum
How to use checksums
e07f3746da7e4555e4f0467c80de3f48263d558376e95ece16838317e00d0369
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

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

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

Download URL zen_engine-0.18.1-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
b39fe747bc099d819fe4755255f15cfde365758b0b3670b459e25a9e5f1563c9
BLAKE2b-256 checksum
How to use checksums
62de17cbea998029256e417f3f0b8cada086d1dd04d1d9919efbd7596bb2c6f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
f24abf3a27d7f3f6e1f4a1f19868c237edac8e867efdafa6eb066c6243b8681f
BLAKE2b-256 checksum
How to use checksums
1a69c69f9d54cf91b6765c2d209458499d15aea04f1bacee93dab7e7267f54a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-cp312-none-win_amd64.whl
Size 1.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
509459b0c6dc60cc769405bd07d261ac062f8595d975fc7446795efea97c433f
BLAKE2b-256 checksum
How to use checksums
ed0cdd5fd20c57e33042302c11f4eb5e6e0ae1d63aef9b353dc59db51483001c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

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

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

Download URL zen_engine-0.18.1-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
e18bdce75266356f8bf0815a4544f54e4f91a7fe0bd74ddf737c334aa1ef806e
BLAKE2b-256 checksum
How to use checksums
9fe1b921ac397c44af9ad71bc27b067065bab7787d1ba4e6809a2a688a7e0d45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
f8e132b0da3db173426097d46cb9045f1e8cb19fb4b57df3f5914e4b3e13a302
BLAKE2b-256 checksum
How to use checksums
013fa7b32c2da892c683733073f237ad1bc5f4223c950163612bdb41705c0b22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

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

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

Download URL zen_engine-0.18.1-cp311-none-win_amd64.whl
Size 1.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
45c141425b0252006a1398590fdad636e55bf51bb0424fda5b0887b52a2eacca
BLAKE2b-256 checksum
How to use checksums
ae86d1811f3daac532218249b790b4e7a9fdc1ca784d997423da103312667ade
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
0ea558eedad5dc5922048de5f714dd99a194a0b14e1cd848048b143ea2f6bee2
BLAKE2b-256 checksum
How to use checksums
ca36729955b6feb2eba7292127fadd308ad1322282675adedd5662c17170d688
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
4ea8ddbe968512fa63eb054a08b466b77ea3d6a8d4c08262244decb66279c6b7
BLAKE2b-256 checksum
How to use checksums
7e778de5643b036d9d4cba80e5df89ade9c694f613ecfe2ab9ffde6b4e7d5154
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

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

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

Download URL zen_engine-0.18.1-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
2d76e9d4e46783f21edecd42971124801f89d67a487a02fb8d75cd6929fba875
BLAKE2b-256 checksum
How to use checksums
ea65f448e9d9e9d203242176abd4bb411d87bd12ff329adada6d6b82849872e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

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

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

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

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

Download URL zen_engine-0.18.1-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
021e0a66e311baa5b521fcde39fca6a8ec9d2502808ebb1887c0c155adbf01e7
BLAKE2b-256 checksum
How to use checksums
62321a2999dd2801c9d676a37fcd0e37180f055ee2421272e7fee85c66a53c5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
1c46e57e922dc23d11e862691823c76df88c55f2c2cb7a32ca39dbe3b3e43c58
BLAKE2b-256 checksum
How to use checksums
22d0fef8b9575af5753a1e5792198e3f9a1be95e50b1ec1837c630742bd103a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
082ddbf0b3e3e2aec086e4443506fd101a3696da872e4e38e45a551c04365d40
BLAKE2b-256 checksum
How to use checksums
6316cbba5a223be37658d5d6a2fd413436f693afb549b46dd76c6d06abaa57f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-cp39-none-win_amd64.whl
Size 1.5 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
16e4658491b0e58d18dd12345a7e39e423c76b92b16c49f7a0d4bef0931e088c
BLAKE2b-256 checksum
How to use checksums
7c5d89ddcc8e6fc3d0a51e888f45c6266a100a5ef42ab07536441ee6535d1c89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
8ce147adf627651ac5a390632f2c25df4483bb9c017938fb940918f2cbed4667
BLAKE2b-256 checksum
How to use checksums
cb5d956a3298863fb1d10f4fa5d0c570ea64bc66e222606ae411e0685357cc5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
2ed86e1eca1cf8b740e002938dd8296771efdffbb5c648493b65e1a804337d45
BLAKE2b-256 checksum
How to use checksums
7f2f41016447b037fa78f2129983f22e0dce3d47427586f380a4c0d896b98ee6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

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

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

Download URL zen_engine-0.18.1-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
4a7145b7f26c4fec7ea1e445483e6a11a62a9042a868b6c833d3a849b5cb505a
BLAKE2b-256 checksum
How to use checksums
afdc290d92882c4bf4fcce4041c8cf905b8b0b1276f4fe8a45f2d631dc69503b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
8d367676d2d67bf280e700ffa3ff426a9a542d628e94627b2793ea11f2fd7fd3
BLAKE2b-256 checksum
How to use checksums
78f644cdcb1150acf3eafcf135ede7c7ccb098fefb74786aee9c3a0db5b5269f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

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

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

Download URL zen_engine-0.18.1-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
e719d465a319d0fe9f7fd205d78c1ed3b73a62048617112a6686ddf5c11d9109
BLAKE2b-256 checksum
How to use checksums
9b777736f0761579996bc9f53db8ea73044f12e6de7303c9cd2aef9eec70a913
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

Download URL zen_engine-0.18.1-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
429051448628f40b9311fec6dc7a678989ca3ef79a9bf08a8b3ccaf0306ac7bf
BLAKE2b-256 checksum
How to use checksums
b074ccc9fdd41cdb8faae1f9f6cee4d5c40049d937c73940cf4ffea308308549
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

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

32 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page