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.23.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.23.0
File Size Uploaded
zen_engine-0.23.0.tar.gz 125.6 kB Details

Built distributions (wheels)

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

Total release size: 55.5 MB

Release files / zen_engine-0.23.0.tar.gz

Download URL zen_engine-0.23.0.tar.gz
Size 125.6 kB
Tags Source
SHA-256 checksum
How to use checksums
43060492e0bb1eb14cd97ca7502007481584e50109be5ed2d1d51d0c5653fccc
BLAKE2b-256 checksum
How to use checksums
de6c620924814e7c4972059e46eaeeb350e30d2821ed08f62858f955937144c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

Download URL zen_engine-0.23.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
f44e36235775654e68273df27f578cef9ed70b3c40aca8a71d34164f4a6e6e6a
BLAKE2b-256 checksum
How to use checksums
140f4b561e5e8daa500f515729f594bbc127716c36778ca54bfa1b6b009cf784
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.23.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
ab4e2f5ba8f5c6bbf3d1b8844ba2bc8285c0c7f837bf7bfeb01f62895a78f51f
BLAKE2b-256 checksum
How to use checksums
b8ed1840f441e36c7c21fbbd135cb32e8ade0e9db268350cbaa9736128084f98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.23.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
490f23e445c871f78b4ee5e09ce8e576deb997620435b6fb4ca190431c630bb4
BLAKE2b-256 checksum
How to use checksums
1537db6134545712c0512eb2280be90ffdd0676f9197a40aa5c5f6b789a20bfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.23.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
df1b4f630cb64b6d1389eccb26066c98ff0fcde7619dcb9130019a1dd019d7fe
BLAKE2b-256 checksum
How to use checksums
44c7d123efb84df2ab37168f302373f79ef2f46db097a8e1d011c993f61fe2a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
761b31167ce8c7aa86917a0c697157d3bd4216196e31721b49a752dddcefb09e
BLAKE2b-256 checksum
How to use checksums
aff31d0cf59d05be5cd1a377356d6f21d5d11a9b035ddc2d759a001cfa73c628
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a0f7b93951dd978a21cde4a4212a6727e5fa20899d92ceee4ecffc39fc882d7e
BLAKE2b-256 checksum
How to use checksums
8cb88e327861af5b6c1f7f226e91db7bc5125019674242dfe27b54062b0820ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
15402b682967c4f7da6f2579bacfc1d9268b54fe4802a51ef027130b968a7c76
BLAKE2b-256 checksum
How to use checksums
97503bc45e3c7229b3b5c2ff0af6f5eec8386b41f04a3cafd467b8f640f7dc3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.23.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6268dec3cf222cf66f7e0a7fedb5687b8ddc3e483c061ce2ac5558511baadf8e
BLAKE2b-256 checksum
How to use checksums
38bacd8731e656dbc6f10622e3cf6902d7f84f860a757e53e949b084601c7724
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a4b6e5750d6dfa7a860171870fd7e0d1b7f1cec4d42551c2196021247963d86c
BLAKE2b-256 checksum
How to use checksums
759d89cd8f03aa17d11d9b6a9096b14f1e7be8e58f5261703a78f7b9ecf9fb73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7fe6f4bc8eb1404f91d222c5b2e2f93e1610b0e3e9b16e26492dcf2596994c9f
BLAKE2b-256 checksum
How to use checksums
3ffae5c413585eea11e88d0ffd5f2e45dae7b6e64d4072c3ef91e3c198c87631
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
79f89603345e0d2a4beb19c442eae25315ffb331590eabdd52cc95e6e83ac40e
BLAKE2b-256 checksum
How to use checksums
d3266537d9a3459757153228e69bbae27c2c3e2e13ef91691896913b76bd73f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

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

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

Download URL zen_engine-0.23.0-cp310-cp310-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e84ea4bba9c289bc22569b5cc404c1a98a980e049f8dee99bdbc608134d1c20e
BLAKE2b-256 checksum
How to use checksums
c8efb105fc2377ab43872ee6434faf8730d1d21424b199b48db39eb506fe3a16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
22365e018e9b89e9fb3dc85cd256ae2922e27f1cfec1c02b8ea25ef5980358f4
BLAKE2b-256 checksum
How to use checksums
cd3e8a676df46141efc7d48296786d49deb23f32a2b97a97eee9bda9616c58a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp39-none-win_amd64.whl
Size 1.7 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
67c72e3c3034f9a5ed048c832ff246b9aaa01e41822b4f30ab2926f9da2e0a7d
BLAKE2b-256 checksum
How to use checksums
5ff3622d4967b01b7365b8c0a3ea95fc5058e71f78942c41dc7be3c9c4ee6f46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.23.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6c30e2b7df30419aba89cda57931cc244cfc5ee0ee4bbd56b9d0e478737849e7
BLAKE2b-256 checksum
How to use checksums
420f3765e8ada3ea7dcc7de54f9ba5572918d283b88b81d5adebf3b374eb2530
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp39-cp39-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5fa224920c9b0b1248334565b0b8ceb781066792bfb6b34fe46494bcf3ab77e6
BLAKE2b-256 checksum
How to use checksums
cdbcf0af0e160378dbb08c0ba168600375ce07b84014b69698aab5c8f68d607e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp39-cp39-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
28ed32bfb1af469d63d062503f9a7eb8ae35fece836cd83d35938725625ac9d3
BLAKE2b-256 checksum
How to use checksums
909eac08152e625260a0939f1fa3a33e96cbd6cdeb077513cca4b3464ed4f831
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp38-none-win_amd64.whl
Size 1.7 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
5e047f77587df47e47c762b026fbecd0d23dfaf769864b90d2e12b55f55a9670
BLAKE2b-256 checksum
How to use checksums
64382015c8ffae63926c1e3d69ae273b6d3b54268c4c07cfca786ecb85968a3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1cd644480e0b18539aa3d2187bafa9cc2472072389452d4b52070a9f04a5ec83
BLAKE2b-256 checksum
How to use checksums
0233ca9af6189349f804dc9c43fca97a06d91a05c3f9253880159cf7ec9854f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
35beb1a953b6430a1cb1017d14489e75dd523a4dcfcf4f6dcdc7647c277dc1ae
BLAKE2b-256 checksum
How to use checksums
6f332cde7766b6240cb429633c2bdd5c6fdf6d81d9bfd1cb9e8351c89f9711b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.23.0-cp37-none-win_amd64.whl
Size 1.7 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
34e84b623c82dca66d8467661fbc7f198581a111c8d5ac4752af130ffaead9f7
BLAKE2b-256 checksum
How to use checksums
ebd5c2fd006b74faecf6a51f38561d85bb6a58c999642785041dfb31a70f6460
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.23.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f9d66e30efda79bed824d001dba91cf115a37c0325c466b31d73ac64fe38e616
BLAKE2b-256 checksum
How to use checksums
4e857430c691625251384837f266c09a77334fa13ed5482ec13f00795f3c106e
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.23.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