No project description provided
Project description
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_bytesmethod, facilitating quick and reliable message parsing. - Streamlined Message Definition: Leverages Python's dataclass decorator within the custom
networkmessagedecorator 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b2ab02de1dcdbcec467e13d2cbc9efabc2eff7d7e04c5c9f7f65742410de4e1
|
|
| MD5 |
b8a06a7b6f06258868058684f6f03e6b
|
|
| BLAKE2b-256 |
271c5084f5565a4110e2a4f6cbe518012a23776188302596c8fb25d0b3cae82a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8c82200051f54800c0380b3c270d7adb32dc4f598cdba958ea638e1b78e2de4
|
|
| MD5 |
97bc8a75d7d54bdece2f306ae0171d13
|
|
| BLAKE2b-256 |
716b9b179a2a1d84dd4e96760fe28fd55cdbb231145b29c2616aca4484871351
|