libp2p / libp2p/devgrants

Libp2p for Ocaml by Developing a C Wrapper for the Go Implementation

Open
#12 0 comments 0 reactions 1 assignee View on GitHub

@raulk is already working on this.

Since Aug 6, 2019.

Status: Proposed
Dominant language
No language data
Stars
40
Forks
2
PR merge metrics
No merged PRs in 30d

Description

Motivation and context

My ultimate goal is to use libp2p from Ocaml. But rather than starting from scratch writing an Ocaml implementation, I'd like to write a C wrapper for the Go implementation, then either using the C wrapper directly in Ocaml, or writing an Ocaml wrapper (library) around the C wrapper (depending on how things look when we get there)

Value

The two main benefits are

  • having an Ocaml solution quickly that is as 'correct' as the Go implementation
  • having something that's probably helpful in other porting situations - since C can be linked to many different languages.

Benefits (if addressed)

The C wrapper would be generally useful to others that want to port the library.

Risks (if not addressed)

Expected output and constraints

I would expect:

  • to have an agreed to C wrapper for the Go implementation
  • have either a guide or a library for Ocaml.

Relevant discussion

Design/implementation notes

Since the C wrapper should be generally useful, some agreement on its signature before going too far is important. In fact, this is probably a good first step - defining the signature of the C representation of a module.

Potential funders

Funding would be great and since I'm between jobs at the moment it would be helpful; but I'd move forward with this in any case. I'm more interested in getting plugged in at this point.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.