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.39.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.39.0
File Size Uploaded
zen_engine-0.39.0.tar.gz 179.0 kB Details

Built distributions (wheels)

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

Total release size: 118.2 MB

Release files / zen_engine-0.39.0.tar.gz

Download URL zen_engine-0.39.0.tar.gz
Size 179.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f26fadcdda88d3a04e83c5e6fe3191bafafd3074cab1f2abf9d125c2c197d6ab
BLAKE2b-256 checksum
How to use checksums
01754128ef427c9be08d20069f37f9736f7907bf22a5f58acdfb309c57bdd5f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.39.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
45794d7c9b1ee5f354a23b8d8bfd08bd09a352afc2de6196884c55370b1fecbf
BLAKE2b-256 checksum
How to use checksums
246373578cbadebc841c3f924c971216dccaeb34657210ae9b00cc537bf25e34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.39.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
8ce9b70b0c885ab488da35104634088a4a47e66707ac1edc04090a8e62ec52a5
BLAKE2b-256 checksum
How to use checksums
2849370aea7b15f16319094bf68dca2d87df9ed2fb65113286e92373d4d54354
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Download URL zen_engine-0.39.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
44d59a93a159a59004aeb13d86a508ff5a1e3b3eefb01c1c644b9124b9673e31
BLAKE2b-256 checksum
How to use checksums
8c8ad4f87488eeb1944730428c9f5005be6f9441f0e861fc1c9b69dceaf1f2ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.39.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
56ebd90e962d4efe010cd6e130bb8e1d5c6e5cafe9b794eb227ab69802fa8261
BLAKE2b-256 checksum
How to use checksums
5955a016178de826902f6c59f0a63dd8233971e9e63570141f945f8a1fd653b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

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

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

Download URL zen_engine-0.39.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
064009870b50e25176030706bafbea67b298a682daf9a12bd564ae76295ffdff
BLAKE2b-256 checksum
How to use checksums
0105af7e4e7d77013eb9338702cb27f2abf53bad5108cc6b2db0a14dc0b86d1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

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

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

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

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

Download URL zen_engine-0.39.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
6dd81102d5109d9c2a68cc867e5136ab7a70e2a389658c48608cdf43683dd2a1
BLAKE2b-256 checksum
How to use checksums
003cf42785c540c53a4c40e0a128f1a7718fc957bccf2f1731e0e3039c71d02e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

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

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

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

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

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

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

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

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

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

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

Download URL zen_engine-0.39.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
1996d71b488c1ed43df73d4e22f2eef7ac828218b91b1db5bb416302f4185251
BLAKE2b-256 checksum
How to use checksums
34d30d008efb0b578fdf36c49214947463552aaa8388d52eebda218f03cd67d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.2

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

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

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

Download URL zen_engine-0.39.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
c632fc410d95897886f9bbc047fdfad7b212e1191582244511f5838c9b3b0532
BLAKE2b-256 checksum
How to use checksums
73711c3073c748d8ec55fe33e28fa97a9b0ac94165df7e6c7a6d5601f941ea29
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.39.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