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

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 .

Python Stub files generation

They are generated automatically buy can also be generated

python -m nanobind.stubgen -m odin_stream

Test

pytest test

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.3.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.3-cp313-cp313-win_amd64.whl (250.7 kB view details)

Uploaded CPython 3.13Windows x86-64

odin_stream-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (29.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

odin_stream-0.1.3-cp312-cp312-win_amd64.whl (250.7 kB view details)

Uploaded CPython 3.12Windows x86-64

odin_stream-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (29.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: odin_stream-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 36d354b8dc0ff99a6a5911a705e4256c9e54cbc52d7b28cd9a82fb4b55b0596e
MD5 7f013c7fa7ed8862e898136e70d9a11c
BLAKE2b-256 1b3f67fef18e3aff24444855e15b6892bc60217662695419bb8ad1892e779c04

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.3.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.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: odin_stream-0.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 250.7 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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8e84e18858df171d18fb33e45d8689ce57275bd0d121632be49b0a8655a04c9c
MD5 716db3350ce5f06995133a8a665dbd26
BLAKE2b-256 8500c4f44fa4f076f0a241c5524239dadc137b919bfda671b86e0c48eef054c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.3-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.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for odin_stream-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 660b63054c036005b99e0fdb6c828e87ffd873044dd0288773b1429aaba404b0
MD5 30d0920aaf9365e028fcf9a6959e0fb3
BLAKE2b-256 4efa9bc4f35c9a663bbc42dc0939a6edf58436e4481ff9a19b7429eb4bed07b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.3-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.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: odin_stream-0.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 250.7 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2881979e5c2401b540e304535c78b1b04498c25e2aa498b14b94c6f36c12b597
MD5 6de0e95f96492812c34794d215563b64
BLAKE2b-256 8c0664a6489e2a1b88550332f9db090ebe9374ebe0e154e13df620b20eac3a7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.3-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.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for odin_stream-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 90cf2d368ec90e0379b26474808a7302ba06c24c2064bb285a62497fd764d1d3
MD5 bcdc3716b23e0226a4a883fe40c6fdbc
BLAKE2b-256 ab663d70e30a9c181f60dd368772a07508ae0777558bad22b9562b2eb700fd7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for odin_stream-0.1.3-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