Skip to main content

A collection of modules useful for system programming with Python. NOTE: STILL IN DEVELOPMENT

Project description

Sysframe

A framework designed for providing tools to develop system services with.

Introduction

This is a custom framework that provides the tools used by the various system services made by me. This includes modules such as for managing shared memory and other IPC operations, and serialization for converting values to bytes to store them in said shared memory.

Current modules

This framework currently consists of the following modules:

  • pybytes
  • membridge

Explanations on how to use these modules are found in module-specific README files, such as README_pybytes.md for the pybytes module. For code-specific documentation, there aren't special README's for that. I've tried to explain each piece of code well enough using in-code comments.

Modules

Here, you can find a brief explanation of each module contained by this package. For detailed explanation per module, you can find a module-specific README in the module dir.

Pybytes

Pybytes is a module that's used for serializing and de-serializing values. It aims to keep the byte size smaller without sacrificing too much performance, making it suitable for system development. It supports a wide range of datatypes, including datatypes from core modules (such as datetime or uuid). The list of available datatypes can be found in the modules README.

Besides that, it also supports any of the standard list types, those being list, dict, tuple, set and frozenset. These are also allowed to be nested to a depth of 100.

Membridge

Membridge is a module for IPC operations, allowing independent processes to communicate. This was added to the sysframe package because it supports shared function calls, which can be used to keep the 'main' process of a service the actual service, and have it provide handles to other processes so that they can operate using the main process. This is useful if you want to avoid having multiple processes running the same operations, which can be considered a waste of resources.

Membridge uses the sysframe.pybytes module for serializing and de-serializing the values to be passed to the shared memory. If you want to use a different serializer that would support other datatypes for example, you can use whichever serializer you want, and pass the received bytes object to membridge, as sysframe.pybytes supports byte objects.

This module has not been tested yet, and is still being worked on. Thus, it's also not in the package currently.

Contact

If you happen to find a problem or have a question, feel free to contact me via:

  • Discord: sven_de_pen,
  • Email: boertjens.sven@gmail.com

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

sysframe-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (52.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (52.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (52.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (52.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (135.0 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

sysframe-0.2.0-cp312-cp312-musllinux_1_2_i686.whl (143.8 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

sysframe-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (144.7 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (145.4 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (131.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

sysframe-0.2.0-cp311-cp311-musllinux_1_2_i686.whl (140.2 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

sysframe-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140.8 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (140.9 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl (128.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

sysframe-0.2.0-cp310-cp310-musllinux_1_2_i686.whl (137.9 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

sysframe-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (138.4 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl (128.5 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

sysframe-0.2.0-cp39-cp39-musllinux_1_2_i686.whl (137.3 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

sysframe-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (137.4 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (138.5 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-cp38-cp38-musllinux_1_2_x86_64.whl (129.8 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

sysframe-0.2.0-cp38-cp38-musllinux_1_2_i686.whl (139.0 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

sysframe-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (141.9 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-cp37-cp37m-musllinux_1_2_x86_64.whl (121.9 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.2+ x86-64

sysframe-0.2.0-cp37-cp37m-musllinux_1_2_i686.whl (128.7 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.2+ i686

sysframe-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (133.4 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (134.2 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

sysframe-0.2.0-cp36-cp36m-musllinux_1_2_x86_64.whl (121.9 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.2+ x86-64

sysframe-0.2.0-cp36-cp36m-musllinux_1_2_i686.whl (128.6 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.2+ i686

sysframe-0.2.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (133.3 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

sysframe-0.2.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (134.2 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

Supported by

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