Future features and enhancements #1306
-
|
Do we have any clear road map on the library's future features and enhancements? |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 10 replies
-
|
For the features, we ever tagged some issues with feature, while, I think some of them are already outdated. For the enhancement, I submitted some PRs in my mind but don't have a doc/issue to track them. Do you have any idea to share? |
Beta Was this translation helpful? Give feedback.
-
|
I have a couple of ideas from my own implementation using the library 1. External Parameter AccessWhat we need: Built-in API to get/set parameters on other ROS 2 nodes, not just the local node. Why we need it:
Current workaround: Custom service that manually creates service clients for each parameter operation (~200 lines of code) 2. JSON-Safe Message SerializationWhat we need: Messages that are directly JSON-serializable without custom conversion logic. Why we need it:
Current workaround: Custom message normalizer service (~150 lines of recursive TypedArray conversion) 3. Promise-Based Service CallsWhat we need: Async/await support for service calls with timeout and cancellation. Why we need it:
Current limitation: Must wrap callbacks in Promises manually for every service call 4. Remote Parameter WatchingWhat we need: Subscribe to parameter change events from other nodes. Why we need it:
5. Message ValidationWhat we need: Runtime validation of message structure before publishing/processing. Why we need it:
6. Enhanced Error HandlingWhat we need: Specific error types (TimeoutError, ConnectionError, ValidationError) instead of generic errors. Why we need it:
7. Rate Limiting & ThrottlingWhat we need: Built-in rate control for publishers and subscriptions. Why we need it:
I have more nice to have features but for now the above suggestions are the ones that I struggled with the most, thank you for asking :). Let me know your thoughts and how I can help. |
Beta Was this translation helpful? Give feedback.
-
|
Setting the parameter for a node running remotely (#1), is there any security risk we can think out? |
Beta Was this translation helpful? Give feedback.
-
|
Some updates about this thread (thanks to @mahmoud-ghalayini effort):
|
Beta Was this translation helpful? Give feedback.
-
|
I think we can finally close this discussion — all of the originally proposed features and enhancements have now been implemented. Thank you for the collaboration and guidance throughout these contributions! I'd like to continue contributing with the following topics, though they require more planning and closer collaboration:
Let me know if you're interested in exploring either of these. |
Beta Was this translation helpful? Give feedback.
I think we can finally close this discussion — all of the originally proposed features and enhancements have now been implemented.
Thank you for the collaboration and guidance throughout these contributions!
I'd like to continue contributing with the following topics, though they require more planning and closer collaboration:
Testing utilities: A testing package or helper methods exported directly from rclnodejs. One of my biggest challenges has been mocking rclnodejs methods and classes for unit tests.
ES Module support: Migrating from CommonJS to modern ES module syntax, enabling
import { Node } from 'rclnodejs'instead ofrequire('rclnodejs').Let me know if you're interested in…