Considerations for updating and maintaining [Python] language libraries
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Domain
- backend-api-design
Research direction
Start by reading the 9 October 2025 project meeting notes and the linked PyO3 async-runtimes and DustDDS material. Compare maintaining up-python with generating Python bindings for up-rust, then document the preferred direction and collect relevant information and discussion in this issue.
Written by the indexing model from the issue text.
Description
The overall structure of the uProtocol ecosystem has so far been built on the availability and continually improving quality of the core uProtocol specification, which are then implemented in 'language libraries' (e.g. up-python) and transport-protocol adapters (e.g. up-python-mqtt') for each programming language environment that the project is supporting. This approach is what the project started with, with the understanding that a uProtocol tck exists to validated compliance and interoperability of the different implementations.
There is a valid question raised about, instead of (not) maintaining specific language (e.g. Python) language libraries, we might be better off using something like https://crates.io/crates/pyo3 to (periodically) create/update Python bindings for up-rust (which at this point is probably the reference implementation of the spec).
This issue is to provide a discussion marker for this topic, specifically for how to best evolve/revive up-python. The topic has been initially discussed in the uProtocol project meeting on 9th October 2025.
Some links for potential inspiration of a binding-to-up-rust approach, informed by the DustDDS project kindly participating in that session and providing some insights on how they approached that exact challenge:
- see https://github.com/PyO3/pyo3-async-runtimes for wrapping Rust APIs
- used for implementing Rust => Python bindings for DustDDS
- DustDDS approach: do standalone API code in Python (front-end language), to be free build something that completely idiomatic for that language, then link that API to generated bindings to Rust crate. This allows both libraries to live entirely in their respective worlds, and adhere to the appropriate design practices.
- Always recommend it if possible to not put any business logic on this the binding layer => refer to DustDDS for how this could be done, also wrt generating Documentation for the front-end language (e.g. Python) from the core library/crate (Rust)
Some more discussion items can be found in the minutes of abovementioned meeting - pls treat this issue as a place for further discussing this and collecting pertinent information.
- Dominant language
- Python
- Stars
- 3
- Forks
- 13
- Avg merge
- 5h 28m
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from eclipse-uprotocol/up-python
-
Difficulty 5/5 Over a week Newbie friendliness 10/100
-
Add OFT tags Openenhancement
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 55/100
All issues in eclipse-uprotocol/up-python
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
xinnan-tech/xiaozhi-fde-talk#263 ·
-
rules
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
huggingface/Repo2RLEnv#163 · 1 comment ·
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
huggingface/sentence-transformers#4074 ·
-
comp/dashboard invalid P3
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
NousResearch/hermes-agent#121143 ·