Add nim-ffi suggestion

This commit is contained in:
Ivan Folgueira Bande 2025-07-14 14:34:51 +02:00
parent a7069716b4
commit f0010c9abc
No known key found for this signature in database
GPG Key ID: 3C117481F89E24A7

View File

@ -3,7 +3,7 @@
**Estimated date of completion**: 19 Dec **Estimated date of completion**: 19 Dec
**Resources Required for 2025H2**: **Resources Required for 2025H2**:
- 1 nwaku eng for 2 months - 2 nwaku eng for 3 months
- Support from Vac/Nim team - Support from Vac/Nim team
Improve usage of Nim related tooling and design patterns by proceedings with PoCs to discover potential gains and caveats. Improve usage of Nim related tooling and design patterns by proceedings with PoCs to discover potential gains and caveats.
@ -73,4 +73,26 @@ Note: maybe taken over by Vac-Nim
- [ ] Specs: link to specs and/or API definition - [ ] Specs: link to specs and/or API definition
- [ ] Code: link to GitHub issues/PRs/Epic - [ ] Code: link to GitHub issues/PRs/Epic
- [ ] Dogfood: link to dogfooding session/artefact - [ ] Dogfood: link to dogfooding session/artefact
- [ ] Docs: links to README.md or docs.waku.org (TBD) - [ ] Docs: links to README.md or docs.waku.org (TBD)
### Create new nim-ffi repository that will allow exposing any Nim library in an easy way
**Owner**: nwaku
**Feature**:
- [Waku SDK](/FURPS/core/waku_sdk.md)
- [RLN SDK](/FURPS/core/rln_sdk.md)
- [Chat SDK](/FURPS/application/chat_sdk.md)
- [SDS](/FURPS/application/sds.md)
**No FURPS**:
**Output**:
- [ ] The `nim-ffi` repository provides the core logic needed to expose any synchronous or asynchronous Nim library. This involves meta-programming and the introduction of new pragma definitions, such as `{.ffi.}`, to appropriately annotate types and procedures.
- [ ] `nim-ffi` can be installed using Nimble.
- [ ] The `nwaku` repository uses `nim-ffi` to expose the existing `libwaku` functionality.
- [ ] All Nim libraries should expose their APIs (functions, types, etc.) through `nim-ffi`.