feat: initial release of V2X J2735 codec with Python & Node.js bindings#2
Merged
feat: initial release of V2X J2735 codec with Python & Node.js bindings#2
Conversation
- Add root Makefile to orchestrate Native C and WASM builds. - Implement modular CMake configuration for j2735codec and core library. - Add PlatformDetection.cmake for cross-platform OS/Arch identification. - Implement PostBuild.cmake logic for automated binding generation and WASM asset syncing. - Add path validation for SAE J2735 standard revisions. - Update .gitignore to exclude build artifacts and generated assets.
- Add root pyproject.toml for UV workspace management. - Rewrite Makefile with colorized environment guards and uv detection. - Implement multi-phase install-py target (build, test, package, and verify).
- Add setup-js, build-js, and install-js targets to Makefile. - Update codec.test.ts to import from package name.
da3e0e2 to
6a628ef
Compare
8d15a1e to
06167e9
Compare
- Bump the require python version to 3.9 to make protobuf version play nice. - Added additional pytest for python bindings including memory checks.
- Rename J2735Codec to V2XCodec for python bindings.
d236e43 to
01c723b
Compare
0778f8f to
bb05620
Compare
- Add registration and deregistration examples. - Add vehicle, speed monitor and loopback examples. - Add CI support to release examples. - Update documentation for python examples.
637f153 to
1103c03
Compare
- Add registration and deregistration examples. - Add vehicle, speed monitor, and loopback examples. - Add CI support to release examples. - Update documentation for node examples.
1103c03 to
ebcc9d2
Compare
c401823 to
d07090e
Compare
- Replace blocking `input()` calls with non-blocking signal handlers (SIGINT/SIGTERM). - Remove `readline` dependency in Node.js examples to prevent headless hangs. - Ensure clean mTLS disconnection and resource cleanup in both Python and Node.js. - Add `process.stdin.pause()` and `unref()` timers to prevent zombie processes in Node.js. - Standardize J2735 speed unit conversions across all example clients.
df600d0 to
93e5ae4
Compare
- Rename arguments for registration example from reg_folder to certDir. - Change registration configuration key from deviceId to device_id. - Update JSON encoding/decoding to use snake case keys for device configurations.
- Separate codec build Makefile and README instructions into the j2735codec folder. - Update CI build process to reflet new structure.
93e5ae4 to
5f3275d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces the initial implementation of the J2735 V2X Codec. It includes the core C++ logic compiled to WASM, along with high-level bindings for both Python and Node.js.
Key Features
uvmanaged package with full type hinting andpytestsuite.vitestintegration.Build Mechanism
bindings/python/dist/.bindings/node/.Verification
make install-pypasses (Isolated Wheel test).make install-jspasses (Isolated Tarball test).generated/directories.Issues