struct-frame 0.0.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of struct-frame might be problematic. Click here for more details.

@@ -0,0 +1,4 @@
1
+ ts_out
2
+ node_modules
3
+ .vscode
4
+ main.exe
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Rijesh Augustine
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,33 @@
1
+ Metadata-Version: 2.4
2
+ Name: struct-frame
3
+ Version: 0.0.11
4
+ Summary: A framework for serializing data with headers
5
+ Project-URL: Homepage, https://github.com/mylonics/struct-frame
6
+ Project-URL: Issues, https://github.com/mylonics/struct-frame/issues
7
+ Author-email: Rijesh Augustine <rijesh@mylonics.com>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python :: 3
12
+ Requires-Python: >=3.8
13
+ Requires-Dist: proto-schema-parser>=1.4.5
14
+ Description-Content-Type: text/markdown
15
+
16
+
17
+
18
+ TS install
19
+
20
+ npm i -D typescript typed-struct @types/node
21
+ npx tsc --init
22
+ npx tsc index.ts
23
+ node index.js
24
+
25
+
26
+ npx tsc --project tsconfig.json; node index.js
27
+
28
+
29
+ building package
30
+ py -m build
31
+ py -m twine upload --repository testpypi dist/*
32
+
33
+ py -m pip install --upgrade twine
@@ -0,0 +1,18 @@
1
+
2
+
3
+ TS install
4
+
5
+ npm i -D typescript typed-struct @types/node
6
+ npx tsc --init
7
+ npx tsc index.ts
8
+ node index.js
9
+
10
+
11
+ npx tsc --project tsconfig.json; node index.js
12
+
13
+
14
+ building package
15
+ py -m build
16
+ py -m twine upload --repository testpypi dist/*
17
+
18
+ py -m pip install --upgrade twine
@@ -0,0 +1,41 @@
1
+ package biostream;
2
+
3
+ enum AdcSamplingFrequency {
4
+ FREQ_1000 = 0;
5
+ FREQ_2000 = 1;
6
+ FREQ_4000 = 2;
7
+ FREQ_8000 = 3;
8
+ FREQ_16000 = 4;
9
+ }
10
+
11
+ //enum before comment
12
+ enum TransImpedanceGain {
13
+ R_10 = 0;
14
+ R_100 = 1;
15
+ R_1k = 2;
16
+ //Enum inside comment
17
+ R_10k = 3;
18
+ }
19
+
20
+
21
+ message RawData {
22
+ option msgid = 1;
23
+ float refV = 1;
24
+ float drnC = 2;
25
+ float srcV = 3;
26
+ float drnV = 4;
27
+ float gteV = 5;
28
+ float phsV = 6;
29
+ float gteC = 7;
30
+ float temp = 8;
31
+ float time = 9;
32
+ }
33
+
34
+ message AdcCommand {
35
+ option msgid = 112;
36
+ bool enable = 1;
37
+ AdcSamplingFrequency sampligFreq= 2;
38
+ uint8 overSamplingRate = 3;
39
+ TransImpedanceGain drainRes = 4;
40
+ TransImpedanceGain gateRes = 5;
41
+ }
@@ -0,0 +1,66 @@
1
+ import * as mv from './ts/myl_vehicle.sf';
2
+ import { parse_char, parse_buffer } from './ts/struct_frame_parser';
3
+ import { struct_frame_buffer, buffer_parser_result_t, } from './ts/struct_frame_types';
4
+ import { type ExtractType } from 'typed-struct';
5
+
6
+ let tx_buffer = new struct_frame_buffer(256)
7
+ let rx_buffer = new struct_frame_buffer(256)
8
+
9
+ let msg = new mv.myl_vehicle_pose();
10
+ msg.pitch = 100;
11
+ msg.yaw_rate = -1.45;
12
+ msg.test = 4883;
13
+ mv.myl_vehicle_pose_encode(tx_buffer, msg);
14
+
15
+ let hb = new mv.myl_vehicle_heartbeat();
16
+
17
+ hb.id = 23;
18
+ hb.type = mv.myl_vehicle_VehicleType.myl_vehicle_VEHICLE_TYPE_FW;
19
+ mv.myl_vehicle_heartbeat_encode(tx_buffer, hb);
20
+
21
+
22
+ let msg2: ExtractType<typeof mv.myl_vehicle_pose>;
23
+ let hb3: ExtractType<typeof mv.myl_vehicle_heartbeat> | undefined;
24
+ for (let i = 0; i < tx_buffer.size; i++) {
25
+ if (parse_char(rx_buffer, tx_buffer.data[i])) {
26
+ switch (rx_buffer.msg_id_len.msg_id) {
27
+ case mv.myl_vehicle_heartbeat_msgid:
28
+ console.log("got hb msg with id %d", rx_buffer.msg_id_len.msg_id);
29
+ hb3 = new mv.myl_vehicle_heartbeat(rx_buffer.msg_data);
30
+ break;
31
+ case mv.myl_vehicle_pose_msgid:
32
+ console.log("got pose msg with id %d", rx_buffer.msg_id_len.msg_id);
33
+ msg2 = new mv.myl_vehicle_pose(rx_buffer.msg_data);
34
+ break;
35
+
36
+ default:
37
+ break;
38
+ }
39
+ }
40
+ }
41
+
42
+
43
+ let msg3: ExtractType<typeof mv.myl_vehicle_pose>;
44
+ let hb5: ExtractType<typeof mv.myl_vehicle_heartbeat> | undefined;
45
+
46
+ let result: buffer_parser_result_t = new buffer_parser_result_t();
47
+ while (parse_buffer(tx_buffer.data, tx_buffer.max_size, result)) {
48
+ switch (result.msg_id_len.msg_id) {
49
+ case mv.myl_vehicle_heartbeat_msgid:
50
+ console.log("got hb msg with id %d", result.msg_id_len.msg_id);
51
+ hb5 = new mv.myl_vehicle_heartbeat(rx_buffer.msg_data);
52
+ break;
53
+ case mv.myl_vehicle_pose_msgid:
54
+ console.log("got pose msg with id %d", result.msg_id_len.msg_id);
55
+ msg3 = new mv.myl_vehicle_pose(rx_buffer.msg_data);
56
+ break;
57
+
58
+ default:
59
+ break;
60
+ }
61
+ }
62
+
63
+ if (hb && hb3 && hb5) {
64
+ console.log("%d %d %d %d", hb.id, hb.type, hb3.id, hb3.type, hb5.id, hb5.type);
65
+ }
66
+
@@ -0,0 +1,80 @@
1
+ #include <stdio.h>
2
+ #include "c/struct_frame_gen.h"
3
+
4
+ #include "c/struct_frame_parser.h"
5
+
6
+ // CREATE_DEFAULT_STRUCT_BUFFER(tx_buffer, 256);
7
+ uint8_t tx_buffer_buffer[256];
8
+ struct_buffer tx_buffer = {default_parser, tx_buffer_buffer, 256, 0, 0, false, 0, 0, 0};
9
+
10
+ // CREATE_DEFAULT_STRUCT_BUFFER(rx_buffer, 256);
11
+ uint8_t rx_buffer_buffer[256];
12
+ struct_buffer rx_buffer = {default_parser, rx_buffer_buffer, 256, 0, 0, false, 0, 0, 0};
13
+
14
+ int main()
15
+ {
16
+ MylVehiclePose msg;
17
+ msg.pitch = 100;
18
+ msg.yaw_rate = -1.45;
19
+ msg.test = 4883;
20
+ myl_vehicle_pose_encode(&tx_buffer, &msg);
21
+
22
+ MylVehicleHeartbeat *hb;
23
+ if (myl_vehicle_heartbeat_reserve(&tx_buffer, &hb))
24
+ {
25
+ hb->id = 23;
26
+ hb->type = VEHICLE_TYPE_VEHICLE_TYPE_FW;
27
+ myl_vehicle_heartbeat_finish(&tx_buffer);
28
+ }
29
+
30
+ MylVehiclePose msg2;
31
+ MylVehicleHeartbeat *hb2;
32
+ MylVehicleHeartbeat hb3;
33
+ for (int i = 0; i < tx_buffer.size; i++)
34
+ {
35
+ if (parse_char(&rx_buffer, tx_buffer.data[i]))
36
+ {
37
+ switch (rx_buffer.msg_id_len.msg_id)
38
+ {
39
+ case MYL_VEHICLE_HEARTBEAT_MSG_ID:
40
+ printf("got hb msg with id %d\n", rx_buffer.msg_id_len.msg_id);
41
+ hb2 = myl_vehicle_heartbeat_get_ref(&rx_buffer);
42
+ hb3 = myl_vehicle_heartbeat_get(&rx_buffer);
43
+ break;
44
+ case MYL_VEHICLE_POSE_MSG_ID:
45
+ printf("got pose msg with id %d\n", rx_buffer.msg_id_len.msg_id);
46
+ msg2 = myl_vehicle_pose_get(&rx_buffer);
47
+ break;
48
+
49
+ default:
50
+ break;
51
+ }
52
+ }
53
+ }
54
+
55
+ MylVehiclePose msg3;
56
+ MylVehicleHeartbeat *hb4;
57
+ MylVehicleHeartbeat hb5;
58
+ buffer_parser_result_t result = zero_initialized_parser_result;
59
+ while (parse_buffer(tx_buffer_buffer, 256, &result))
60
+ {
61
+ switch (result.msg_id_len.msg_id)
62
+ {
63
+ case MYL_VEHICLE_HEARTBEAT_MSG_ID:
64
+ printf("got hb msg with id %d\n", result.msg_id_len.msg_id);
65
+ hb4 = myl_vehicle_heartbeat_get_ref_from_buffer_result(result);
66
+ hb5 = myl_vehicle_heartbeat_get_from_buffer_result(result);
67
+ break;
68
+ case MYL_VEHICLE_POSE_MSG_ID:
69
+ printf("got pose msg with id %d\n", result.msg_id_len.msg_id);
70
+ msg3 = myl_vehicle_pose_get_from_buffer_result(result);
71
+ break;
72
+
73
+ default:
74
+ break;
75
+ }
76
+ }
77
+ printf("%d %d %d %d", hb->id, hb->type, hb2->id,hb2->type);
78
+
79
+ return 0;
80
+ }
@@ -0,0 +1,47 @@
1
+ syntax = "proto3";
2
+ import "nanopb.proto";
3
+ package myl_vehicle;
4
+
5
+ enum VehicleType {
6
+ VEHICLE_TYPE_UNSPECIFIED = 0;
7
+ VEHICLE_TYPE_ROVER = 1;
8
+ VEHICLE_TYPE_BOAT = 2;
9
+ VEHICLE_TYPE_FW = 3;
10
+ VEHICLE_TYPE_MR = 4;
11
+ VEHICLE_TYPE_CAR = 5;
12
+ }
13
+
14
+ message position {
15
+ option msgid = 1;
16
+ double lat = 1;
17
+ double lon = 2;
18
+ float alt = 3;
19
+ }
20
+
21
+ //Used for sending robot pose
22
+ message pose {
23
+ option msgid = 2;
24
+ //Used for sending roll
25
+ float roll = 1;
26
+
27
+ // Used for sending pitch
28
+ float pitch = 2;
29
+ float yaw = 3;
30
+ float roll_rate = 4;
31
+ float pitch_rate = 5;
32
+ float yaw_rate = 6;
33
+ int16 test = 7;
34
+ }
35
+
36
+ message heartbeat {
37
+ option msgid = 3;
38
+ VehicleType type = 1;
39
+ int32 id = 2;
40
+ }
41
+
42
+ message heartbeat2 {
43
+ option msgid = 4;
44
+ float test = 1;
45
+ int32 id3 = 2;
46
+ }
47
+
@@ -0,0 +1,241 @@
1
+ {
2
+ "name": "custom-messaging",
3
+ "lockfileVersion": 3,
4
+ "requires": true,
5
+ "packages": {
6
+ "": {
7
+ "dependencies": {
8
+ "ts-node": "^10.9.2"
9
+ },
10
+ "devDependencies": {
11
+ "@types/node": "^22.10.7",
12
+ "typed-struct": "^2.5.2",
13
+ "typescript": "^5.7.3"
14
+ }
15
+ },
16
+ "node_modules/@cspotcode/source-map-support": {
17
+ "version": "0.8.1",
18
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
19
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
20
+ "license": "MIT",
21
+ "dependencies": {
22
+ "@jridgewell/trace-mapping": "0.3.9"
23
+ },
24
+ "engines": {
25
+ "node": ">=12"
26
+ }
27
+ },
28
+ "node_modules/@jridgewell/resolve-uri": {
29
+ "version": "3.1.2",
30
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
31
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
32
+ "license": "MIT",
33
+ "engines": {
34
+ "node": ">=6.0.0"
35
+ }
36
+ },
37
+ "node_modules/@jridgewell/sourcemap-codec": {
38
+ "version": "1.5.0",
39
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
40
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
41
+ "license": "MIT"
42
+ },
43
+ "node_modules/@jridgewell/trace-mapping": {
44
+ "version": "0.3.9",
45
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
46
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
47
+ "license": "MIT",
48
+ "dependencies": {
49
+ "@jridgewell/resolve-uri": "^3.0.3",
50
+ "@jridgewell/sourcemap-codec": "^1.4.10"
51
+ }
52
+ },
53
+ "node_modules/@tsconfig/node10": {
54
+ "version": "1.0.11",
55
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
56
+ "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
57
+ "license": "MIT"
58
+ },
59
+ "node_modules/@tsconfig/node12": {
60
+ "version": "1.0.11",
61
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
62
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
63
+ "license": "MIT"
64
+ },
65
+ "node_modules/@tsconfig/node14": {
66
+ "version": "1.0.3",
67
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
68
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
69
+ "license": "MIT"
70
+ },
71
+ "node_modules/@tsconfig/node16": {
72
+ "version": "1.0.4",
73
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
74
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
75
+ "license": "MIT"
76
+ },
77
+ "node_modules/@types/node": {
78
+ "version": "22.10.7",
79
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz",
80
+ "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==",
81
+ "license": "MIT",
82
+ "dependencies": {
83
+ "undici-types": "~6.20.0"
84
+ }
85
+ },
86
+ "node_modules/acorn": {
87
+ "version": "8.14.0",
88
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
89
+ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
90
+ "license": "MIT",
91
+ "bin": {
92
+ "acorn": "bin/acorn"
93
+ },
94
+ "engines": {
95
+ "node": ">=0.4.0"
96
+ }
97
+ },
98
+ "node_modules/acorn-walk": {
99
+ "version": "8.3.4",
100
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
101
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
102
+ "license": "MIT",
103
+ "dependencies": {
104
+ "acorn": "^8.11.0"
105
+ },
106
+ "engines": {
107
+ "node": ">=0.4.0"
108
+ }
109
+ },
110
+ "node_modules/arg": {
111
+ "version": "4.1.3",
112
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
113
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
114
+ "license": "MIT"
115
+ },
116
+ "node_modules/create-require": {
117
+ "version": "1.1.1",
118
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
119
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
120
+ "license": "MIT"
121
+ },
122
+ "node_modules/diff": {
123
+ "version": "4.0.2",
124
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
125
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
126
+ "license": "BSD-3-Clause",
127
+ "engines": {
128
+ "node": ">=0.3.1"
129
+ }
130
+ },
131
+ "node_modules/make-error": {
132
+ "version": "1.3.6",
133
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
134
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
135
+ "license": "ISC"
136
+ },
137
+ "node_modules/ts-node": {
138
+ "version": "10.9.2",
139
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
140
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
141
+ "license": "MIT",
142
+ "dependencies": {
143
+ "@cspotcode/source-map-support": "^0.8.0",
144
+ "@tsconfig/node10": "^1.0.7",
145
+ "@tsconfig/node12": "^1.0.7",
146
+ "@tsconfig/node14": "^1.0.0",
147
+ "@tsconfig/node16": "^1.0.2",
148
+ "acorn": "^8.4.1",
149
+ "acorn-walk": "^8.1.1",
150
+ "arg": "^4.1.0",
151
+ "create-require": "^1.1.0",
152
+ "diff": "^4.0.1",
153
+ "make-error": "^1.1.1",
154
+ "v8-compile-cache-lib": "^3.0.1",
155
+ "yn": "3.1.1"
156
+ },
157
+ "bin": {
158
+ "ts-node": "dist/bin.js",
159
+ "ts-node-cwd": "dist/bin-cwd.js",
160
+ "ts-node-esm": "dist/bin-esm.js",
161
+ "ts-node-script": "dist/bin-script.js",
162
+ "ts-node-transpile-only": "dist/bin-transpile.js",
163
+ "ts-script": "dist/bin-script-deprecated.js"
164
+ },
165
+ "peerDependencies": {
166
+ "@swc/core": ">=1.2.50",
167
+ "@swc/wasm": ">=1.2.50",
168
+ "@types/node": "*",
169
+ "typescript": ">=2.7"
170
+ },
171
+ "peerDependenciesMeta": {
172
+ "@swc/core": {
173
+ "optional": true
174
+ },
175
+ "@swc/wasm": {
176
+ "optional": true
177
+ }
178
+ }
179
+ },
180
+ "node_modules/typed-struct": {
181
+ "version": "2.5.2",
182
+ "resolved": "https://registry.npmjs.org/typed-struct/-/typed-struct-2.5.2.tgz",
183
+ "integrity": "sha512-T49/nUUkbusHwSHWxGOODAMjCkbdveVS0J9kKJfW+zx2puqP/20IMzkiqymfhzvHCTcaPeb8rat1Lvv+I/c1kA==",
184
+ "dev": true,
185
+ "license": "MIT",
186
+ "engines": {
187
+ "node": ">=12"
188
+ },
189
+ "peerDependencies": {
190
+ "buffer": "^6.0.3",
191
+ "debug": "^4.3.3",
192
+ "iconv-lite": "^0.6.3"
193
+ },
194
+ "peerDependenciesMeta": {
195
+ "buffer": {
196
+ "optional": true
197
+ },
198
+ "debug": {
199
+ "optional": true
200
+ },
201
+ "iconv-lite": {
202
+ "optional": true
203
+ }
204
+ }
205
+ },
206
+ "node_modules/typescript": {
207
+ "version": "5.7.3",
208
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
209
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
210
+ "license": "Apache-2.0",
211
+ "bin": {
212
+ "tsc": "bin/tsc",
213
+ "tsserver": "bin/tsserver"
214
+ },
215
+ "engines": {
216
+ "node": ">=14.17"
217
+ }
218
+ },
219
+ "node_modules/undici-types": {
220
+ "version": "6.20.0",
221
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
222
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
223
+ "license": "MIT"
224
+ },
225
+ "node_modules/v8-compile-cache-lib": {
226
+ "version": "3.0.1",
227
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
228
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
229
+ "license": "MIT"
230
+ },
231
+ "node_modules/yn": {
232
+ "version": "3.1.1",
233
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
234
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
235
+ "license": "MIT",
236
+ "engines": {
237
+ "node": ">=6"
238
+ }
239
+ }
240
+ }
241
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "devDependencies": {
3
+ "@types/node": "^22.10.7",
4
+ "typed-struct": "^2.5.2",
5
+ "typescript": "^5.7.3"
6
+ },
7
+ "dependencies": {
8
+ "ts-node": "^10.9.2"
9
+ }
10
+ }
@@ -0,0 +1,34 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "struct-frame"
7
+ version = "0.0.11"
8
+ authors = [
9
+ { name="Rijesh Augustine", email="rijesh@mylonics.com" },
10
+ ]
11
+ dependencies = [
12
+ "proto-schema-parser>=1.4.5",
13
+ ]
14
+ description = "A framework for serializing data with headers"
15
+ readme = "README.md"
16
+ requires-python = ">=3.8"
17
+ classifiers = [
18
+ "Programming Language :: Python :: 3",
19
+ "Operating System :: OS Independent",
20
+ ]
21
+ license = "MIT"
22
+ license-files = ["LICEN[CS]E*"]
23
+
24
+ [project.urls]
25
+ Homepage = "https://github.com/mylonics/struct-frame"
26
+ Issues = "https://github.com/mylonics/struct-frame/issues"
27
+
28
+
29
+ [tool.hatch.build.targets.wheel]
30
+ only-include = ["src/struct-frame"]
31
+
32
+ [tool.hatch.build.targets.wheel.sources]
33
+ "src" = ""
34
+ "boilerplate" = "src/struct-frame/boilerplate"
@@ -0,0 +1,3 @@
1
+ #from .ast import Field, FieldCardinality, Message, Option
2
+ #from .parser import Parser
3
+ #__all__ = ["Parser", "Message", "Field", "Option", "FieldCardinality"]