Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
(I'm opening this PR quite early to get more feedback and fix it)
Checklist
Context
As discussed in #36, this sets up the FFI infrastructure with
cbindgen
. It is using thebuild.rs
way, but many projects define aMakefile
or some other external way to generate the bindings via thecbindgen
command line. The reason is that expanding macros might take some time (I even disabled it for now), and this ends up being executed every time the crate is built (but the C header rarely changes).I'm keeping the FFI module inside the
hypercore
repo. Some projects create another crate for the FFI, but I think this is easier to keep in sync.I set up a Python project using it to help guide what APIs to expose thru the FFI. I was thinking about developing this by:
There is only one function for now (and it's not even very useful), but it already works to create a feed on the Python side
Semver Changes
No API changes on the Rust side.