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.40.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.40.0
File Size Uploaded
zen_engine-0.40.0.tar.gz 179.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.40.0
File
zen_engine-0.40.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.40.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.40.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.40.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.40.0-cp313-cp313t-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64 Details
zen_engine-0.40.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
zen_engine-0.40.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
zen_engine-0.40.0-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
zen_engine-0.40.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
zen_engine-0.40.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
zen_engine-0.40.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
zen_engine-0.40.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.40.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.40.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.40.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.40.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
zen_engine-0.40.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.40.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.40.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.40.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.40.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
zen_engine-0.40.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.40.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.40.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
zen_engine-0.40.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.40.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.40.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
zen_engine-0.40.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.40.0-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.40.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.40.0-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 119.5 MB

Release files / zen_engine-0.40.0.tar.gz

Download URL zen_engine-0.40.0.tar.gz
Size 179.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e880a837b3a597f399289793a015f84dd29a99ee5466295670e396e4a3811251
BLAKE2b-256 checksum
How to use checksums
ab493a82e2dd34ad183a6fac4f7f84d3f1b43e9f9ccbf003ec3beea701fd3a41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
b19257a9748b2365ae6fdb72945f35b26315c0f794a3a8d3a144b6a2648dc687
BLAKE2b-256 checksum
How to use checksums
230e6c4dc505aa27b9c20e590b98b13c8b9cc4ab4e60d285614a6a3bf6afdeb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
390f2ec19aa4b8f26cb93b9b01033f628b54f4a38950ccc0d9beebb5c54d72a5
BLAKE2b-256 checksum
How to use checksums
420890ff2e42860ddcee4ee991eb418f017e6689792a42a63111b86e266a8b18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
71db0f792ce20b16ece7942dd606e3f9b2373124b635001cdca4e3f3a34cb1b2
BLAKE2b-256 checksum
How to use checksums
a63fb33a6742da70ae379944013c238183c0c0f4b775f6fe2f136fe7fc1ee786
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
29827dbc54cc37bd0615c0d54024498f6a9790e53c2f52b14f2efa30daae1415
BLAKE2b-256 checksum
How to use checksums
4e82ba32d9aba1844ed1d79bc359df3d3831d79e4cddb8225be782be465dbeec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3bab013954b6acc144d9f9c9f8f929639a31895eacafa725a47098f71271d7c2
BLAKE2b-256 checksum
How to use checksums
d8c6a5b1df7a12b60ee2123228719282113663c33a1787f26acaa286fccfef08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp313-cp313-win_amd64.whl
Size 4.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
77b7b9655680cb55f171042dc6854663925b948f9d5e2667bedaf6563f1d1b0e
BLAKE2b-256 checksum
How to use checksums
dff550a789c39a41d9820fe9151de5ec7b626c8a9ff98fb4897ffb8a67a0f99b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a50f5aa83c09c915601e0efc1d6511e583f05fd983f3225b89aa3634035a4f4a
BLAKE2b-256 checksum
How to use checksums
749361f7c4f35ef8967c35c9d2fdbea3da4975889ef1c44b3883f8f9b29d7e00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0e034403baa93ca53f592df474a4f0a5b2ee7dd35a03c5f1a2660defe65921a8
BLAKE2b-256 checksum
How to use checksums
92d99715bc35afc8cccdb8ef476df3c8cae5cd9252fb12597f7ae49a4096a8bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp313-cp313-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
984904d800c08aca34ddfe9f0dd277dc317a7b99e5d7045c05011dabd15452a3
BLAKE2b-256 checksum
How to use checksums
dbfcc0644d636df1b889356f2ef79277ec1374286d82c8ba9a203df804ca617a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 3.8 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
147ffeff555973b4a98021c72b2b68b967bd92b3b5511c2c9297f0f5e677e2fd
BLAKE2b-256 checksum
How to use checksums
3ed460f7fedd56d5d2a01d59366a3f01f80670e738c22725a5e8a60b76117757
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp312-cp312-win_amd64.whl
Size 4.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
4ce8f73b5461eef1c0378d851022e2cebf3a7c09e62c30b78edc18a600ed41f9
BLAKE2b-256 checksum
How to use checksums
676058b09f1178248de593da8728f8944e3cb9cf5e8857b71a7944459d83fc66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8c70f30780a1a76a930a59472e44b268786f63939e4d599f03e462bd81836b8f
BLAKE2b-256 checksum
How to use checksums
2fa34477aa7eb7b5cebbe38d34421cf4f00f70a48c267594e9d58073b83675ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.40.0-cp312-cp312-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
373a140f916e026f01fff61a9a0111505604ada614a469b00aac637ef3a91917
BLAKE2b-256 checksum
How to use checksums
a282ac95fd7d69410baf358601a9f649b0811d3b28a0cf6370f7c2fa1ad4cd30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 3.8 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7274b6c8813be08e20615af389d918251b2a5306395edf91b11286ac56a82524
BLAKE2b-256 checksum
How to use checksums
ff9a98650c12860d31d568c5dd0ef358f7f467ebf7d6bb7e6c17e4e35147295b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp311-cp311-win_amd64.whl
Size 4.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8c3206c1f5b68b0af79eacb43f3fe6ea2b4ef12baf24ee6708b1aa5385eeeeff
BLAKE2b-256 checksum
How to use checksums
727395fbe72d27525e7b91f0e317acf3ef550fb0e0b3ad25a4ec180a9295b583
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
653327cf260ed4f443580db90e7ce4f0ff44f6608fe79cb48fb41435285da8cb
BLAKE2b-256 checksum
How to use checksums
2b25c9c5532c37b31d01114b1f5970a3b2090296c21366c798a0f0e0e9556f12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f6ee10a6ab6756e830e64ae41be7fc092fd882ceca372f6e73274a09ef7685df
BLAKE2b-256 checksum
How to use checksums
03ec730df0a699c30d25300c2246850bced0a1a1ce0c97845edb4bc815f26949
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp311-cp311-macosx_11_0_arm64.whl
Size 3.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3c0574b84262826c02aaa176be56da94024c0e229494f84fe56027a83af65667
BLAKE2b-256 checksum
How to use checksums
6bccaffa2d324a1fd035cb7f880e3dbcae08ab29bd71e78310ac8cd7dd301b7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.8 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3f61533b2d09ce446c9ad86a9c4a1cfaeacfb521d83ef9b5ae196bdb5b558aa1
BLAKE2b-256 checksum
How to use checksums
bb1483b9ab61d1586866bde9e810811cb9451407c301bec85c4c04340e7c8ede
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp310-cp310-win_amd64.whl
Size 4.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
130fd6bea42d6d79d47c8b70a24eae362185dc370dbb2b6535ed4f24e3153f0a
BLAKE2b-256 checksum
How to use checksums
7b29028765b121444149474a130465da1075e7fcd7c019330dbb9242f024f1cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
467668e0b2aff70b1cb9eec09a6b223a6cb6c9f2284df0a9dffe404207476e75
BLAKE2b-256 checksum
How to use checksums
64eac7b9e47b5b1d9510c91f40b85ed58fba63c7c55543d58914a48334cf1dba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fb16ecb321e056794c43f0d3d5fbeb6d05d1c2f43626c620fc592f926df9c8fd
BLAKE2b-256 checksum
How to use checksums
6dde8251c95570750538f7fea488cb6a7f6382c476e69c7ac45b6cb73831b965
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp39-cp39-win_amd64.whl
Size 4.0 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
b3b09f691720c210de995a6e14cf148b986d3b2acd9b949374b5241584cd77d0
BLAKE2b-256 checksum
How to use checksums
68f9abd842768eeab090383d9f2814b5454d3c346532d77a5f8d1985e64fcedd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
95ab6cf21d1fc06d564e06f23d0e746a07a870c70ba3dc3545036489db74b50d
BLAKE2b-256 checksum
How to use checksums
e251ad19dc928b3ebd5552c37a20bd2d5a0e527253d126e67118fe6fd90716ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.40.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
35eb3ddbe68ff8fddfa2aeba5b05ca8ab99dfa7984ed40d62a75e34439057d38
BLAKE2b-256 checksum
How to use checksums
0afd69433072cec671aa7e127cefa761a6c5f6f0731fe6af777965e8d7d61a4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

Release files / zen_engine-0.40.0-cp38-cp38-win_amd64.whl

Download URL zen_engine-0.40.0-cp38-cp38-win_amd64.whl
Size 4.0 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
8acce59c6aecdc6453ad98db0f6228e0b36562d48a2ba16fa48d5dfeba86edd4
BLAKE2b-256 checksum
How to use checksums
18b5611bccba6cd047905b7f0fde5a49b419f41c336c69afc9f0d91f4d5423a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.40.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9662854da59004726a4170e712a19958e3b0e9d1930c9f78ce012f5d768c44d8
BLAKE2b-256 checksum
How to use checksums
1dc83baa7da626f571fcb686dfda8bd101667f97124b34cf2fc02547c6048d4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

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

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