Skip to main content

No project description provided

Project description

DinoBytes

dinobytes

DinoBytes is a dynamic serialization framework designed to simplify network communication by providing a robust set of tools for serializing and deserializing messages using the MessagePack format. With its easy-to-use decorator and base class, DinoBytes makes defining and handling network messages both efficient and intuitive, suitable for applications ranging from simple messaging systems to complex distributed architectures.

Features

  • Automatic Message Type Registration: Utilizes a decorator to automatically register message types and assign unique identifiers, ensuring a smooth serialization and deserialization process.
  • Simplified Serialization: Offers a straightforward method (to_bytes) for converting message objects into serialized bytes.
  • Effortless Deserialization: Allows for easy conversion of bytes back into message objects using the from_bytes method, facilitating quick and reliable message parsing.
  • Streamlined Message Definition: Leverages Python's dataclass decorator within the custom networkmessage decorator to reduce boilerplate and enhance readability when defining new message types.
  • Message Registry: Automatically maintains a registry of message types, simplifying the process of managing different kinds of network messages within your application.

Installation

Install DinoBytes using pip:

pip install dinobytes

Quick Start

Defining a Message

from dinobytes import networkmessage

@networkmessage
class MyMessage:
    content: str

Serializing a Message

message = MyMessage(content="Hello, DinoBytes!")
serialized_message = message.to_bytes() # or bytes(message)

Deserializing a Message

received_message = MyMessage.from_bytes(serialized_message)
print(received_message.content)  # Output: Hello, DinoBytes!

The unpack_msg convenience method can also be used to automatically unpack into the correct type:

from dinobytes import unpack_msg

received_message = unpack_msg(serialized_message)
print(received_message.content)  # Output: Hello, DinoBytes!

Contributing

Contributions to DinoBytes are welcome! Whether it's bug reports, feature requests, or code contributions, please feel free to reach out or submit a pull request. For major changes, please open an issue first to discuss what you would like to change.

License

DinoBytes is released under the Apache 2 License. See the LICENSE file for more details.

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

dinobytes-0.1.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

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

dinobytes-0.1.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file dinobytes-0.1.0.tar.gz.

File metadata

  • Download URL: dinobytes-0.1.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.3 Darwin/23.2.0

File hashes

Hashes for dinobytes-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3b2ab02de1dcdbcec467e13d2cbc9efabc2eff7d7e04c5c9f7f65742410de4e1
MD5 b8a06a7b6f06258868058684f6f03e6b
BLAKE2b-256 271c5084f5565a4110e2a4f6cbe518012a23776188302596c8fb25d0b3cae82a

See more details on using hashes here.

File details

Details for the file dinobytes-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dinobytes-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.3 Darwin/23.2.0

File hashes

Hashes for dinobytes-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e8c82200051f54800c0380b3c270d7adb32dc4f598cdba958ea638e1b78e2de4
MD5 97bc8a75d7d54bdece2f306ae0171d13
BLAKE2b-256 716b9b179a2a1d84dd4e96760fe28fd55cdbb231145b29c2616aca4484871351

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