From 3a91c1852d53e6f72ff2a5f2dfb2154e1cb0ce2c Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 22 Jul 2025 15:28:19 +1000 Subject: [PATCH] clean furps --- FURPS/application/nim_ffi.md | 25 +++++++++++++++++++++++++ draft-roadmap/nim_usage_improvements.md | 24 +++++++++++++----------- 2 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 FURPS/application/nim_ffi.md diff --git a/FURPS/application/nim_ffi.md b/FURPS/application/nim_ffi.md new file mode 100644 index 0000000..4a38819 --- /dev/null +++ b/FURPS/application/nim_ffi.md @@ -0,0 +1,25 @@ +# {Feature Name} FURPS + +## Functionality + +1. Provides the core logic needed to expose any synchronous or asynchronous Nim library to FFI. + +## Usability + +1. Introduce new pragma definitions, such as `{.ffi.}`, to appropriately annotate types and procedures. + +## Reliability + +1. ... + +## Performance + +1. ... + +## Supportability + +1. Can be installed using Nimble. + +## + (Privacy, Anonymity, Deployments) + +1. `nwaku` repository uses `nim-ffi` to expose the existing `libwaku` functionality. diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md index ee85c14..d36562d 100644 --- a/draft-roadmap/nim_usage_improvements.md +++ b/draft-roadmap/nim_usage_improvements.md @@ -76,23 +76,25 @@ Note: maybe taken over by Vac-Nim - [ ] 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 +### Create nim-ffi, a library to easily expose c-bindings from Nim **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) +- [Nim FFI](/FURPS/application/nim_ffi.md) -**No FURPS**: +**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. +- F1. Provides the core logic needed to expose any synchronous or asynchronous Nim library to FFI. - - [ ] `nim-ffi` can be installed using Nimble. +- U1. Introduce new pragma definitions, such as `{.ffi.}`, to appropriately annotate types and procedures. - - [ ] The `nwaku` repository uses `nim-ffi` to expose the existing `libwaku` functionality. +- S1. Can be installed using Nimble. - - [ ] All Nim libraries should expose their APIs (functions, types, etc.) through `nim-ffi`. \ No newline at end of file +_ +1. `nwaku` repository uses `nim-ffi` to expose the existing `libwaku` functionality. + +**Checklist**: +- [ ] 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) \ No newline at end of file