Skip to main content

A libary to create datastreams of ODIN objects

Project description

ODIN-Stream

A data streaming utility designed as an extension to the odin object dictionary.

How it works

This library is designed to stream out data. It separates the data into two packets, an identifier packet and a data packet. The identifier packet contains the metadata of the data packets, and the data packets contain the actual data. These packets can be send at different rates, and the identifier packet can be sent less frequently than the data packets to save bandwidth.

Packet definition

alt text

Common header The header contains the following content:

  • type: The type of the identifier packet, must be 1
  • id: The id of packet content, this is must be unique for each packet definition, and is used to identify the packet content in the data stream.

Identifier packet type=0x01

This packet contains the required metadata to process the data packets. They are sent less frequently than the data packets to save bandwidth.

In addition to the common header, the header contains the following content:

  • od_identifier: The identifier of the odin packet, this marks which Od definition is used.

There remaining data in the packet contains a fixed list of identifiers, each of which is a tuple of the following:

  • id: Ths id of the entry as referenced in odin
  • size: The size of the entry in bytes as it will be encoded in the data stream

Data packet type=0x02

This packet contains the data which is streamed out.

In addition to the common header, the header contains the following content:

  • timestamp: The timestamp of the packet, this is used to identify the time when the packet was sent.
  • sequence: The sequence number of the packet, this is used to identify the order of the packets.

There remaining data in the packet contains the data in a specific order, which is defined in the identifier packet.

Event packet type=0x0B

This packet contains custom event data which can be streamed out. Details of the events need to br predefined on both sides of the stream.

Prebuilt Wheels

Prebuilt wheels are available for Windows, Linux and MacOS, they can be installed using pip:

pip install odin-stream

From Source

Note: You need a valid C++ compiler and Python 3.7+ installed on your system.

Basic installation

uv pip install --reinstall -ve .

Fast build

uv pip install --reinstall --no-build-isolation -ve .

Auto rebuild on run

uv pip install --reinstall --no-build-isolation -Ceditable.rebuild=true -ve .

WIP

pip install --no-build-isolation -Ceditable.rebuild=true -ve .

Python Stub files generation

They are generated automatically buy can also be generated

python -m nanobind.stubgen -m odin_stream

Test

pytest test

Release

Create wheel

uv run pip wheel . --wheel-dir ./dist --no-deps --no-build-isolation -v

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

odin_stream-0.1.4.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

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

odin_stream-0.1.4-cp313-cp313-win_amd64.whl (238.0 kB view details)

Uploaded CPython 3.13Windows x86-64

odin_stream-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

odin_stream-0.1.4-cp312-cp312-win_amd64.whl (238.0 kB view details)

Uploaded CPython 3.12Windows x86-64

odin_stream-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

File details

Details for the file odin_stream-0.1.4.tar.gz.

File metadata

  • Download URL: odin_stream-0.1.4.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for odin_stream-0.1.4.tar.gz
Algorithm Hash digest
SHA256 926d78e6bc8a3045818d8dcac20fa2fd1a5c1ea0fa517a24166d99b4e23743ab
MD5 b5cb065b023deb747e86f9b529ac6830
BLAKE2b-256 d6955e6af58276016c0a456fd4f57d97c8467e6982544865db5034b867e14cdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.4.tar.gz:

Publisher: wheel.yml on fvsolutions-common/odin-stream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file odin_stream-0.1.4-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: odin_stream-0.1.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 238.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for odin_stream-0.1.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b5b34f83b4f190eeaa84dbeee8a3656d55a3390363e856be17809bc275592eef
MD5 3b16a3fed04a218f249511f2b8969d16
BLAKE2b-256 b3214cb0a1b6f9716b541572350c0535c68421ec12d396bd2eb1a6117d57983c

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.4-cp313-cp313-win_amd64.whl:

Publisher: wheel.yml on fvsolutions-common/odin-stream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file odin_stream-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for odin_stream-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d5a29e79efab659a1abc4669cae36f6bbd9b86401346809551eb4e9527b6f0cd
MD5 b37042fba6c877f8f7cc7c610724903c
BLAKE2b-256 a550f240f3e64d5d39ca7c5af2d90fb0994e1d8caa80b8204fd01e4681a78bf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on fvsolutions-common/odin-stream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file odin_stream-0.1.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: odin_stream-0.1.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 238.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for odin_stream-0.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3dd0cc31f49ed69dd618a39be4f9fe9fa83add1824e11f2f5afc4430b17bc29d
MD5 a1f0390f9912fa3f2b865295f7eef986
BLAKE2b-256 31e48095266ef8b90a8251d5a10283a43edb4d20b2b9149864ab5949eaeaa6c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.4-cp312-cp312-win_amd64.whl:

Publisher: wheel.yml on fvsolutions-common/odin-stream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file odin_stream-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for odin_stream-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a98b1b478b78ed92d53a1d9d3a015bcbbf63861ef613d8b14ded22cf14f857de
MD5 b62bad8b88f5dd5ed43614abdcc05bf6
BLAKE2b-256 afd53bd5f5d63391e7bc9b8f6cc7e543740d9cb8135872faa6900d851876d00e

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheel.yml on fvsolutions-common/odin-stream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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