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

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.38.4
File Size Uploaded
zen_engine-0.38.4.tar.gz 177.2 kB Details

Built distributions (wheels)

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

Total release size: 117.6 MB

Release files / zen_engine-0.38.4.tar.gz

Download URL zen_engine-0.38.4.tar.gz
Size 177.2 kB
Tags Source
SHA-256 checksum
How to use checksums
944ef3a91f0f73a709034598ab080f8a24ea6ac1bc80b4de335b2f9ebab77022
BLAKE2b-256 checksum
How to use checksums
3ad24e2af7f7e29fbb5314ea460b53bbbb46e3c47ad80fd1efb339f35902911d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

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

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

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

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

Download URL zen_engine-0.38.4-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
9218a6015966ae87ddfbf85fa1f913fcce713ab548dbaf370c435cdd61e3feb1
BLAKE2b-256 checksum
How to use checksums
98447d485f1dcaef62e3958cc5c10402783ad5e72d6e39385c50d896925df022
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

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

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

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

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

Download URL zen_engine-0.38.4-cp313-cp313-manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
769aa9178367d4767b561be46c8a171d4dd5d144003891bd6fb6ba78ce3895d6
BLAKE2b-256 checksum
How to use checksums
c64d75903a145fe6e85603837d7a9ac73f3ba04dac45d3cdfe4c099a222c51de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.38.4-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
9dc73f71d8a13b0b84103f90ebc2a560e2db3060310c4ac13d51a2df0c4b53b1
BLAKE2b-256 checksum
How to use checksums
846f29fff99a1fb618a355cc4cffb012608ca787c123cce94a5f3263ac0f68b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.38.4-cp312-cp312-win_amd64.whl
Size 3.9 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
1d8350c2e5cffd6f94fbda19ebd02eb321d93c1ca731f388e66a13be80e6a7ba
BLAKE2b-256 checksum
How to use checksums
2db8fb50889be70649f1d704288af58ec60f22886417ef28fe0c415de4b991a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.38.4-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.9 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
229cd41b16bcbbcae1b6b8604e65d37e4ec2a5fb80d945b7de38d3e8c49a3097
BLAKE2b-256 checksum
How to use checksums
abce84539c884601a373b50361c71c3bcad504b9b4e99f7e94ad91d082cf39e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.38.4-cp312-cp312-macosx_11_0_arm64.whl
Size 3.5 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
793473aacee9ecb027e9ec3a891b1dad350a7b3a8114a65fdd3c0fb642f6b13f
BLAKE2b-256 checksum
How to use checksums
0dc3623e89560ae2d86c9d4d70f024123f09a41f72a6475aa3121a08b1194071
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.38.4-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
3b6384b8b01d9a504160bb4b7f2e3d98d8e02d502d3a79cf389ac2c8485e7dac
BLAKE2b-256 checksum
How to use checksums
cef76028012855cbde91e0a2b6e753d07e3d3e1f54e4abccd95b5961d31bb9ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.38.4-cp311-cp311-win_amd64.whl
Size 3.9 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c7d983b8720083b7534c2c4f2e404d237e73c97df0bcc9b867c1b11753fe2ae6
BLAKE2b-256 checksum
How to use checksums
9916403fe91650b02e7cf5190a8de9008a80455062e6e13d098c14ba0b623a75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.38.4-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
17cad0adef4def0fa13c1ee8743b007182d50a55ad0c698a4589f1015943e204
BLAKE2b-256 checksum
How to use checksums
57cd809d66cdbd6ab9f5ee33f1b4db72dc30bacd48b634fb620cce851066b52c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

Download URL zen_engine-0.38.4-cp311-cp311-macosx_11_0_arm64.whl
Size 3.5 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5f4c29462d1857aa2b90821155fd26b7ce6dea8501c4cc7cc9a8c7884417de1d
BLAKE2b-256 checksum
How to use checksums
afd897b3b6bd84bf471e58f21b48eb566cbf4672f625a056df5477473773f24a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.38.4-cp310-cp310-win_amd64.whl
Size 3.9 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b3b1e15942892d253114d67826264c196ab7642a20a7d0831dbe79fe7f1571b0
BLAKE2b-256 checksum
How to use checksums
6676ab7d76bf96bac0f1649f0e105f066bd0a31131034cbb5c84519b1fc944d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.38.4-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
1b9feee9517685e298f2bd5c5ae71d09862477c2da0679642af8835f09a94fb9
BLAKE2b-256 checksum
How to use checksums
8b12b9de8df969ff97ae9d4c0b994d5cca3e8fffbb2f82164c5b109a081edbe5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

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

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

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

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

Download URL zen_engine-0.38.4-cp38-cp38-win_amd64.whl
Size 3.9 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
0c9888662b91e8786fa8a93cf5605219555bf52c8a401abf8409de022392363b
BLAKE2b-256 checksum
How to use checksums
238d69b4303dcbf62b0bb643e575b4a2b27498857d08944db15be3a64b090c36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

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

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

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

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

Download URL zen_engine-0.38.4-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
b1b88b81532ef353f677368d5d18d0e9727919f431d5671143d100cffc542ece
BLAKE2b-256 checksum
How to use checksums
662b790097b90c86385fda80670850a1c4378e344bdf8f660a4cb5ef4dc94d8a
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.38.4 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