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.30.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.30.0
File Size Uploaded
zen_engine-0.30.0.tar.gz 169.5 kB Details

Built distributions (wheels)

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

Total release size: 100.0 MB

Release files / zen_engine-0.30.0.tar.gz

Download URL zen_engine-0.30.0.tar.gz
Size 169.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2fed4fc7beb434972bc88c62593a00b3d801bf3c8010b942f789322cc754c167
BLAKE2b-256 checksum
How to use checksums
31463473f40677a1dbe954f684ea8fea46e53321658a1c6564e9257f2df62b03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
d660eea0c069a3d444e3cd83a35087c6b09aba1cd8b9820e3d8042b0549d56ea
BLAKE2b-256 checksum
How to use checksums
7887a155459f42ac892467867aff72b0030f8f6c9566922a51c6263e1e97c66f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
4f249c04e2120e3e76325ae86c127390833491222fa16512a55b51f34c7a5465
BLAKE2b-256 checksum
How to use checksums
03e181c6938e19452023fa6192f3ee67ad1dd2aa0ea0477f38c88aaa16768f3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
42bc0d25e1023f77f308efd217aa9b812ba027b71e5e4580c13c81d174433d8b
BLAKE2b-256 checksum
How to use checksums
10cb567e6ba3b446ae0e5e8643b46c0d7e4e93e4f1ace4c14f74e5105b72cb50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
0123583a866f08aa0832b0b6ddeacb7b5ab05e4e12de3a5bcfd31eb196bcd5fd
BLAKE2b-256 checksum
How to use checksums
f970250796315f5386ccc155aee288a9c57d202d299df809969b72765802d894
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
4950729694d5aba94153ced420699728ca89d8d1c273ce2e3a4e373c26663203
BLAKE2b-256 checksum
How to use checksums
3a0d8a29b88aa44457bb6b70e627ba9b9c7465efba18537830ccde76cbb5c33a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
f8bfa58a39f322082ab259cb134093cf01b52b6e1b3dc6930c8849f600e8d1e3
BLAKE2b-256 checksum
How to use checksums
31d0ed52607e7b69ea961e033bfdd1f8e13bf7ab9ce0fb7fc8564cd63bf7f0d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

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

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

Download URL zen_engine-0.30.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
65d13179540d3bc68cd4aba389e81d6b52a3fbe504036a7235d0438c0a9d0e25
BLAKE2b-256 checksum
How to use checksums
2d0796653adcb4957dcfe8a520a78b962a9ddd93dba5c3d50daeaa7f1c154648
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1cc8761df0553fd598aee2f148168a732480d5c2e42d939be0d1da12f8361b5d
BLAKE2b-256 checksum
How to use checksums
3519c37e715014a1fe963daeccfa6f16b4872109e6f49cc320d87dff520e7557
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp312-cp312-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5da7d0754ef9e561284fbeea7c273875f77e20d72a047888b193096a8c64b4fd
BLAKE2b-256 checksum
How to use checksums
26300f53fb2d636c77166a9aedbf3a37f7d41e54996baa558ec1b52979355a88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9b5ce482c7ebdc1705f6acd5d1093e5238b16cf78661ca136da18f2aa446c534
BLAKE2b-256 checksum
How to use checksums
97cc1a54e6b9b1795be1f22d8b528276dcfcbef98aad9e64352f224d99b23596
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.30.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
df54de80398bc602cea52572a594cac6efe0b23cdd4a816f12a49f16f1bdde96
BLAKE2b-256 checksum
How to use checksums
d284f3a542021c878f67803e87785c393b8363cdcf08e98427d6fa6c16aec69d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8444c7a0a218b9fe06175688ffe8dacdb6abe4fd615fb4c23ed24ae527432f5a
BLAKE2b-256 checksum
How to use checksums
25ded041ffd744389881331a03d3f9456cb437cc0a76acd0736b62f6d8d4133f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp311-cp311-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5a23ccd02fb3581c1690785037660117fc1dd24410a49d713719392fc8b94c58
BLAKE2b-256 checksum
How to use checksums
66e4f02782988262451a2a43e976abb326028364bb06631de0caf023f3374b9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
73e14af3667468e2b421e9833bd18393e9d5a37a2f3cd5ce11dc7afbb914044a
BLAKE2b-256 checksum
How to use checksums
53f10e0caf835b1dde711b6e89a2dd8f9e8f8e58afb1355cfefe185f75127732
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.30.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
795ad6c5585025d2896848b9cffb28243d6af42bb24dd1eac3b4c71eb3c30483
BLAKE2b-256 checksum
How to use checksums
631ff8e530f070bf27e24b42b192ba613ac97b4233441179ada1a01499cd46d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
cb8928ac87ab6e250eb01a320cac9154fded276390296ccb91db86ae139d6091
BLAKE2b-256 checksum
How to use checksums
2e2f3b93c513b05610237773e089cc1fd043bd2d3b81b1d9a8f43585ec59e050
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp310-cp310-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
264ebe8ef27283837420d7734f1fa06fbcf6c67524e88bf3c0724bc008601928
BLAKE2b-256 checksum
How to use checksums
ef9ca9f6ec469c631cdbecf03406fa2d11120a2662c307cff17230a7621886ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
0293e4955783db088c1069d15c5261c729c47001319543d30655932d365140dd
BLAKE2b-256 checksum
How to use checksums
fccb525650e0ea4b726e8276534dc94ff770c5b088a60d0f9a99bdd5a8ba7180
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.30.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e4de0a12214e65f6d4cf80fa108a25c67125711592ccbcf413a78d7c41635cab
BLAKE2b-256 checksum
How to use checksums
0cf0730411f6294190290c3f52a411da0fa5932ae26d13ba8f94d607c7f9ad0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
18366054e35629f6e09ed9b9244ffad7762735b7d2d775da927c02f3de55b049
BLAKE2b-256 checksum
How to use checksums
9f50cff0f1f15e9b610c23af150be18651f991718217546090e33cbc6c21d62f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp39-cp39-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4afc3b4b5bbba321bde297f349893826132911c08b5b98947ecf224be8df7a4d
BLAKE2b-256 checksum
How to use checksums
b24ef7283ebeb596cb6ddc149a883a8f826a5cb391018f0ef8a497fa7c946f56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp39-cp39-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e9cf58ef3371e8b394b2943d2f37ebe3dbbad7a730b0c48d0f6a27bed3b171f9
BLAKE2b-256 checksum
How to use checksums
c01c033900e5720b06c8e3b7b335089bd990eef88e3ff27fb990ab0c2234a689
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.30.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0158986526f8be04a04eed2edfda9927de20b569e79fbed964b99582f15d8e4b
BLAKE2b-256 checksum
How to use checksums
1046a46399bce1797d29c7fdd75e6d1d6e05308006a4e5d69e5bec62fe1283ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b960b7e1bba6d4e5321684c7f85cc9ebf127b3c2547d6c2c6980ab66300d34df
BLAKE2b-256 checksum
How to use checksums
5fab8ae9d87c5da93a3b7eb585252aec3171d76a68debada96162d1f3e533d9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp37-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
19f1c50df5a953a1324c4d677ee65bbd9dc4d9c9d6ea3a168a3778b29c2caded
BLAKE2b-256 checksum
How to use checksums
19bd93aaadfdffdac68aabd4be92930d5b3825c9bc4efcc62aa020166479b3df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2ec5451e0f954c756ea7e532ab4141387e4576ab70b9988f9bc566e0783f8618
BLAKE2b-256 checksum
How to use checksums
236ca080bbe97fb13fe11c2ccf522e416dcd29818c1e9489f6a189467f6dc345
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.30.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
96bae7f9e4c44f7bd397fdc1022ef5045251329aa98defb8cea0d852b39ed5f5
BLAKE2b-256 checksum
How to use checksums
832309bf82c160a0b34d32f484a22fc1f2afcd197046b0edad329317de7b7d55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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