[Ndn-interest] [EXT]Re: Is there an active golang library for NDN

Mohammad Ishfaque Jahan Rafee mij.rafee.1344 at gmail.com
Thu Jun 18 17:45:58 PDT 2020

Hi Junxiao,
Thanks for the reply. I am planning to do a comparative evaluation of the
Golang library with other NDN libraries (namely C++ and Python). Why
Golang? Because I am biased. I think it's a wonderful language for network
programming. Also, given that there's not a full-fledged library already, I
can make a contribution and then compare it with existing mature libraries.

Please let me know if you think I can contribute in any way.
Best Regards

On Thu, Jun 18, 2020 at 8:19 PM Junxiao Shi <shijunxiao at email.arizona.edu>

> Hi Rafee
> Yes, I'm doing code cleanup in the NDN-DPDK codebase these days, including
> moving part of /ndni to /ndn.
> /ndn directory will contain a Go library that does not depend on Cgo. It
> serves as an example for other library authors, on how to communicate with
> It will be used for unit tests within the NDN-DPDK codebase, and can be
> used by applications as well.
> Basic functionality (packet encoding, etc) can be used anywhere, including
> microcontrollers via TinyGo compiler.
> There will be Ethernet transport (to communicate with a local or remote
> NDN-DPDK or other forwarder), and libmemif transport (to communicate with
> local NDN-DPDK forwarder). PIT token is required everywhere. These
> transports will depend on Cgo (due to the dependencies), and can only be
> used on Linux.
> Management features will follow protocols of the NDN-DPDK management agent
> (still under design), as I introduced in the 2019 FABRIC community meeting.
> Initially I'm not planning crypto and application layer features
> (segmented object, RDR, etc).
> Yours, Junxiao
>> On Jun 18, 2020, at 4:57 PM, Mohammad Ishfaque Jahan Rafee <
>> mij.rafee.1344 at gmail.com> wrote:
>> Hi Dr. Zhang,
>> I checked inside the email lists using google search, with terms
>> ndn-dpdk, golang and nfd-dev. But couldn't find anything conclusive
>> regarding the design decisions of golang ndn API. However, the repo page
>> for ndn-dpdk shows some guidance. At this point, I'm trying to assume the
>> intention of Junxiao rather than what's inside the repository. So obviously
>> there is a high possibility I'm making errors.
>> https://github.com/usnistgov/ndn-dpdk/tree/master/ndni is the original
>> repo from Junxiao, that is built solely to build ndn-dpdk, without any
>> intention to build an ndn library in golang. It partially contained some
>> wrapper using cgo, which means it uses unsafe pointers and technically
>> can't be cross-compiled (at least not easily).
>> On the other hand, https://github.com/usnistgov/ndn-dpdk/tree/master/ndn,
>> this is something Junxiao is building with exposing it as a golang library.
>> That's why it mentions "go-gettable", that means we can use it as a
>> golang library in any OS or architecture. But this part of the repo is
>> still empty, so I assume it's in active development but it's not ready yet.
>> Junxiao can weigh in whether my assumptions are right or not.
>> Best Regards
>> Rafee

Best Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndn-interest/attachments/20200618/1f3c1f95/attachment.html>

More information about the Ndn-interest mailing list