Skip to main content

A fast and ergonomic ECS library for Python, written in Rust.

Project description

Documentation:

https://xecs.readthedocs.io

xecs is a Python library (written in Rust!) for a performant entity component system (ECS). You can use it to write simulations, games or any other high-performance piece of software.

If you are familiar with Bevy and NumPy – the API of xecs should be familiar to you.

The goals of xecs are as follows:

  • Fast: Operations are executed in parallel as much as possible and the library is written in Rust to be cache friendly and performant.

  • Simple: Data is defined with a dataclass-like syntax and systems are regular Python functions.

  • Typed: Types form an integral part of the API, making code clean but also easily verified with type checkers.

  • NumPy-friendly: Our data types can be used seamlessly with NumPy.

  • Python-friendly: User code is regular Python code, allowing full integration with the Python ecosystem. We avoid things like Numba which cause pain during debugging and limit use of pure Python libraries.

Code Preview

import xecs as xx

class Velocity(xx.Component):
    value: xx.Vec2

def update_positions(query: xx.Query[tuple[xx.Transform2, Velocity]]) -> None:
    (transform, velocity) = query.result()
    transform.translation += velocity.value

Installation

pip install xecs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xecs-0.9.0.tar.gz (58.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xecs-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

xecs-0.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

xecs-0.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

xecs-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

xecs-0.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.5+ i686

xecs-0.9.0-cp311-none-win_amd64.whl (336.7 kB view details)

Uploaded CPython 3.11Windows x86-64

xecs-0.9.0-cp311-none-win32.whl (311.8 kB view details)

Uploaded CPython 3.11Windows x86

xecs-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

xecs-0.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

xecs-0.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

xecs-0.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

xecs-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

xecs-0.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.5+ i686

xecs-0.9.0-cp311-cp311-macosx_11_0_arm64.whl (478.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

xecs-0.9.0-cp311-cp311-macosx_10_7_x86_64.whl (494.5 kB view details)

Uploaded CPython 3.11macOS 10.7+ x86-64

File details

Details for the file xecs-0.9.0.tar.gz.

File metadata

  • Download URL: xecs-0.9.0.tar.gz
  • Upload date:
  • Size: 58.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.3.0

File hashes

Hashes for xecs-0.9.0.tar.gz
Algorithm Hash digest
SHA256 ace980f9ba64361254b67f1ef32e97b7eaf093aade4115a7c53accfdff2a55f9
MD5 0c4078545ae02f496d7e062a289f797b
BLAKE2b-256 5e2489b39e6099aa03bc9fbecc72437b33058a8634d2f695bc3abe352abc8e84

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c2f689a6221b23283deaf7835e1cea33f3292a8f7db8983624e26c106741ea7
MD5 fb7697e83040ea375cb68665b4c90a38
BLAKE2b-256 6e060442e69d542edf82caff651cbe278ca540907cc757f1a1c68ef0382cc071

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f26002df0fde6489cdf49bc2f1247acad4e75838bf5275d9a5afc22008a3f06b
MD5 9ae910c13bc66f57494bd6062f40a6e9
BLAKE2b-256 17ca8db0e1394b0cd2ad278c3451bcbbfc9d769cc1b6c6ad62fe3f10ad48dd54

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 82c6a28a77f2a0c2fd4b60c0a5a4aa4ee5afd099d946b56f9e90f2202145eaad
MD5 4aff26e448199f2fb4c7bc1d29c43d99
BLAKE2b-256 3c6c43ca3a18163569614a92f7b62435e45925078366097ec75d39c5d6eb53e8

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e00342a1251b2e85b70b109645e844b40344ed11639abd23957f2138dba0360a
MD5 764e94b7b4373b88c3375dff84b936d3
BLAKE2b-256 103cb0fcc119fa88a5feba60cbfcdf07c7e164c9ea451a98ea318832f1c68eb5

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 a37b1cff0c2d5274f40b2e477095555490ac9b2cfdcb8f4ec7d01ec2eb509e36
MD5 da0d512e401d76215528ec20bc4e1cb2
BLAKE2b-256 44a6bed8a967eb57dab4c220b41a958c3c744ce35bc6f2a4bafc5bf71f28c030

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-none-win_amd64.whl.

File metadata

  • Download URL: xecs-0.9.0-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 336.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.3.0

File hashes

Hashes for xecs-0.9.0-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 61f7b5832e25fadda22554ee5931e1e369dc27c251a49d51bc91231da40a7f8a
MD5 6852d6aad5cc90ab55393f001e123b10
BLAKE2b-256 c37437b6fa29a1267e0648cc6706212fb7a54772aec47e6a7231809459c4fbe7

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-none-win32.whl.

File metadata

  • Download URL: xecs-0.9.0-cp311-none-win32.whl
  • Upload date:
  • Size: 311.8 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.3.0

File hashes

Hashes for xecs-0.9.0-cp311-none-win32.whl
Algorithm Hash digest
SHA256 124c2a5b2b0ab32be0d68103486ea5627c2f619de735e960458f216f4c5061d3
MD5 238a258d52bd2e96cc1dbfde832a7f75
BLAKE2b-256 44bef49946fb9306dba0cf2356db363fb5d501839ffa25a7dc3ea11e0f5a2cf5

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f3bef44240ef1e5aa4965b34b9228cc083f86594579b67258801d7b58573ed77
MD5 a5089610398f41bb60a4e6add0b17a11
BLAKE2b-256 d1938cdacdf436e8f0874026be6ba72dffd442ce3751ab1841af918f2d231d15

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f8cbbd1ccb722a6c55a2d12c9a1d1c95413dbe736042e994d13599c6b05b82ba
MD5 2005ef3f9cd7ae0bf0417addfc1157d5
BLAKE2b-256 9d10dee9a9206adf23ad433389e7fdaf053bda7bb19715bbf4b0d54bc04d9a00

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 fe75b846482bd28d09ff542d0bbabe870f7f08acb11308eab376027c41b818d9
MD5 0fa258decac8ff6e5c2f4ee04cf88829
BLAKE2b-256 4d33d7e618668fd9f5aa94d58e8bf67c7c9acec267366ba8d72e14870eecb453

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0c0fb5128a6aee654dda330bfbeb9136d75d66cb2ea89b6eb983ccec00db9e33
MD5 14fb8daefd2b72a18bb1d88f5db9a8fd
BLAKE2b-256 b77c684fba3efbd67d7f493ba36c6cce21566a44e6d947fda47d5c9f4077fd0f

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0a2f25a06d00cab7dac7414a76b7a219c1769a40094d68bd21114036bdbdfc0e
MD5 798958bf13c2e9ccd0b520fae8e27e4d
BLAKE2b-256 4b0b39d99691471c66566a1af54ccc4b3c98e5cd58621345b468fcffdae29cd1

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 17d613ad3cafe0a77d7d92080012a76fd74ae1fd69482448adb32b73469ad59e
MD5 00413d05b030e6039286049f7cfc5923
BLAKE2b-256 d657758b5d709019013653cd7dc82b1ecb8f64d4cdb64260a44a3c5de9a147bd

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 746a36394cb913f4ad11f21407c57acf552d53af9881012e1f89e00d6c634d2b
MD5 934ef8888ac4871f7a4cddc15e10b3b4
BLAKE2b-256 4f6a24e32305427ecf5038373eb7aad5ccd757ccabe63eea6dde7c931215d9d8

See more details on using hashes here.

File details

Details for the file xecs-0.9.0-cp311-cp311-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for xecs-0.9.0-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 fabb3aadf7545a9d366e336a25fae5824f93f155e5da2ba505b6fb63632a830c
MD5 92ad5dfc788ed35de48a5604480533ed
BLAKE2b-256 b4f32c8aec17162d8208ddf301961657bb3933edb96c5834e21b0757269e8633

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page