Conversation
NagyZoltanPeter
left a comment
There was a problem hiding this comment.
I have the feeling that Streamline FFI API... belongs to this new point nim-ffi.
WDYT?
Why No FURPS? Yet? Shall we add?
| - [ ] 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 |
There was a problem hiding this comment.
Can't we merge the previous point ### Streamline FFI API Creation by using Protobuf types instead of JSON PoC with this nim-ffi?
There was a problem hiding this comment.
I'll leave it to you. Wouldhte first version of nim-ffi be a copy paste of json usage? or do you want to go directly for protobuf?
There was a problem hiding this comment.
btw, I have noticed that JSON generator is not used because we used default of WakuNodeConf. I intend to correct that,see logos-messaging/logos-delivery#3490
There was a problem hiding this comment.
I think fine to keep it separate for now. even if both end up in same code base.
Yes FURPS please. |
| - [ ] 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 |
There was a problem hiding this comment.
I'll leave it to you. Wouldhte first version of nim-ffi be a copy paste of json usage? or do you want to go directly for protobuf?
| - [ ] 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 |
There was a problem hiding this comment.
btw, I have noticed that JSON generator is not used because we used default of WakuNodeConf. I intend to correct that,see logos-messaging/logos-delivery#3490
| - [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) |
There was a problem hiding this comment.
You need to create a new feature here which would be Nim FFI and write FURPS for it.
In the + section of the FURPS, you can add that it is used by Chat, RLN, etc.
| - [Chat SDK](/FURPS/application/chat_sdk.md) | ||
| - [SDS](/FURPS/application/sds.md) | ||
|
|
||
| **No FURPS**: |
|
Answering this comment #325 (comment) |
fryorcraken
left a comment
There was a problem hiding this comment.
@Ivansete-status I cleaned up the FURPS. looks good?
| - [ ] 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 |
There was a problem hiding this comment.
I think fine to keep it separate for now. even if both end up in same code base.
|
@Ivansete-status would that impact any of our other commitments? |
@fryorcraken - this deliverable represents a big effort but it will be very profitable in the future because all the ffi maintenance will happen in one single repository. I'll double-check the furps tomorrow |
Thanks for it! |
FURPS/application/nim_ffi.md
Outdated
| 2. The exposed C library can be used in Golang. | ||
| 3. The exposed C library can be used in Rust. | ||
| 4. The exposed C library can be used in Python. |
There was a problem hiding this comment.
These are Supportability items
FURPS/application/nim_ffi.md
Outdated
|
|
||
| ## Reliability | ||
|
|
||
| 1. The exposed C library does not leak memory. |
There was a problem hiding this comment.
Is this really under nim-ffi control of hte underneath nim library leaks memory?
There was a problem hiding this comment.
Good question! The underneath library may eventually leak memory but we need to make sure the nim-ffi doesn't leak either because in there, we will handle memory manually, i.e., we cannot use GC'ed types when interfacing between two threads and due to that there's a risk of leaking memory in that process.
FURPS/application/nim_ffi.md
Outdated
| 2. The interaction with the exposed C library is through JSON. | ||
| 3. The interaction with the exposed C library is through protobuf. |
There was a problem hiding this comment.
I think these are Usability, because it allows the dev to use Json or proto serializer libs
FURPS/application/nim_ffi.md
Outdated
|
|
||
| ## Supportability | ||
|
|
||
| 1. Any Nim project can use it and can be installed using Nimble, |
There was a problem hiding this comment.
Here I would put th egolang/rust support.
The nimble support is more of a usability
|
New deliverable, please create it cc @chair28980 |
This PR adds a new deliverable:
Create nim-ffiThe main purpose of this deliverable is to have a single source of truth for ffi-nim-based work and we aim to create a general-purpose repository that will help other Nim developers to expose their projects to other environments