tac
tac copied to clipboard
ASWF Language Interop WG
Describe the purpose of the group in no more than 4-5 sentences
The ASWF Language Interop WG is dedicated to providing interoperability between various programming languages; Python, Rust, Swift, C, and C++ with the potential for future languages to be identified by TAC/TSC, if an existing ASWF project and/or member company are supportive of interoperability between a future language. Additionally empowering all software development by providing seamless interoperability of these APIs through their common, standard existing C++ implementations.
Goals of the working group
- To work in collaboration across the ASWF in the mission to allow all of its existing projects and libraries to interop with these other programming languages, following each respective language's best-practices and standards.
- Through the availability of plugins and other tooling to aid in bringing existing libraries to each of the ASWF Language Interop WG sub working groups' programming languages.
- Creating familiar APIs to their existing C++ implementations, and consistent across each of these programming languages.
- Supporting cross-platform support across all major operating systems.
Breakdown of responsibilities
-
ASWF Language Interop WG
- Organize the sub projects/WGs and make sure we're all on the same page with general design decisions, communication, etc.
- Decide if a language is going to be included as an interop target (project will likely start with C, Python, and Rust, with Swift being the first language that will likely be accepted as well depending on how we decide to set the bar to pass for a language).
-
Sub Language WGs
- Build and maintain bindings.
- Build and maintain documentation (for example, best practices for C++ to Python).
- Communicate with projects/support them.
Non-goals of the working group
- Existing C++ libraries should not be modified, or modified very little.
- Rewriting existing C++ code into these other languages.
Deliverables
- OpenEXR, OIIO, Ptex, and USD for Rust.
- OpenTimelineIO for Swift (with widespread usage).
- USD for Swift.
- Subsequent products to be identified by TAC/TSC.
Implications for the existing Working Group for Rust Bindings.
For some clarity, a breakdown of each of the ASWF Language Interop WG sub working groups (if this proposal is to be accepted):
| Sub Working Group | Status |
|---|---|
| C | New WG |
| Python | New WG |
| Rust | Existing WG |
| Swift | Proposed WG |
Plan is to continue the discussion here and vote at the 6/26 TAC meeting
Approved at the TAC meeting on 20240626
ASWF Language Interop is proposing to move to Archived stage at the May 14, 2025 TAC meeting
Archival is approved.