Prophy is a statically typed, binary, tag-free, unpacked serialization protocol.
You can define message schema:
struct MyMsg
{
u16 x<>;
};
generate codecs for chosen languages:
prophyc --python_out . --cpp_full_out . --cpp_out . test.prophy
and serialize data in Python:
>>> import test
>>> msg = test.MyMsg()
>>> msg.x[:] = [1, 2, 3]
>>> msg.encode('<')
'\x03\x00\x00\x00\x01\x00\x02\x00\x03\x00\x00\x00'
>>> print msg
x: 1
x: 2
x: 3
in C++:
#include <iostream>
#include <iterator>
#include "test.ppf.hpp"
int main()
{
prophy::generated::MyMsg msg{{1, 2, 3}};
std::vector<uint8_t> data = msg.encode();
std::copy(data.begin(), data.end(), std::ostream_iterator<unsigned>(std::cout, " "));
std::cout << '\n' << msg.print();
return 0;
}
3 0 0 0 1 0 2 0 3 0 0 0 x: 1 x: 2 x: 3
again in C++ (half hand-rolled, compiler-dependent, but fastest option):
#include <iostream>
#include <iterator>
#include <cstdlib>
#include "test.pp.hpp"
int main()
{
MyMsg* msg = static_cast<MyMsg*>(std::malloc(12));
msg->num_of_x = 3;
msg->x[0] = 1;
msg->x[1] = 2;
msg->x[2] = 3;
std::copy((uint8_t*)msg, ((uint8_t*)msg) + 12, std::ostream_iterator<unsigned>(std::cout, " "));
std::cout << '\n';
return 0;
}
3 0 0 0 1 0 2 0 3 0 0 0
Documentation: http://prophy.readthedocs.org
Release files for prophy 1.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| prophy-1.2.5.tar.gz | 178.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| prophy-1.2.5-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 256.7 kB
Release files / prophy-1.2.5.tar.gz
| Download URL | prophy-1.2.5.tar.gz |
|---|---|
| Size | 178.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
89a72102998eade68903270b0077167644861823ace8f03dc3204abb52b53474
|
|
BLAKE2b-256 checksum How to use checksums |
f10d28bdef9e28f4df58b2f45c15d45db88900bdd740f88c5bead7453764ca3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10
|
Release files / prophy-1.2.5-py2.py3-none-any.whl
| Download URL | prophy-1.2.5-py2.py3-none-any.whl |
|---|---|
| Size | 78.2 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
40d93f1a7e249a8ffec2a5cba948d8d858e0532e65b5e4b78bdc5764485f1176
|
|
BLAKE2b-256 checksum How to use checksums |
5485b816fd36b4e7ce07cc30055bbc28ca8447b4af3dc7927eaf33c781d74fd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10
|