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
**Resources Required for 2025H2**:
- 1 nwaku eng for 2 months
- 2 nwaku eng for 3 months
- Support from Vac/Nim team
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
- [ ] Code: link to GitHub issues/PRs/Epic
- [ ] 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`.