[Ndn-interest] [EXT] Request for Mentor Program

Mohammad Ishfaque Jahan Rafee mij.rafee.1344 at gmail.com
Mon Jun 15 19:38:27 PDT 2020


Dear Junxiao,
Your previous post made me understand why we need to write a golang
library from scratch (i.e. Originally in golang). While I was originally
planning to write one myself, as per my cursory look, it seems you have
already developed a library yourself "
https://github.com/usnistgov/ndn-dpdk/tree/master/ndn".

However, in your email, you gave strong reasoning why an ndn library should
be developed using native go, while in your contribution, you used cgo
unsafe pointer in several places. Is there any particular reasoning for
this? Is there some pitfall to attempting a pure go library? I am asking
these from the perspective of genuine curiosity about your design choices.

As a part of a project, I intend to make a comparative evaluation of
different NDN libraries (C++, Python, Golang etc.). If I intend to do
something like this, would you say the golang library developed by you is
mature enough for such a comparison?

Best Regards
Rafee

On Wed, May 20, 2020 at 11:46 PM Mohammad Ishfaque Jahan Rafee <
mij.rafee.1344 at gmail.com> wrote:

> Thank you for your explanation. I understand my error now.
>
> On Wed, May 20, 2020 at 7:35 PM Junxiao Shi <shijunxiao at email.arizona.edu>
> wrote:
>
>> Hi Rafee
>>
>> NDN refers to a protocol, not a software.
>> NDN protocol has multiple implementations, such as NDNts, python-ndn, and
>> NDN-Lite. These implementations have independent codebase, and are not
>> bindings of one another.
>>
>> While one could create a Go library as a binding of a C library (the only
>> choice is NDN-Lite) using cgo, it may not be desirable.
>> From a Go programmer's point of view, such a binding library lacks
>> several important benefits that a pure Go library would have:
>>
>>    - No memory safety.
>>    - Not scalable (due to the data structure design of NDN-Lite).
>>    - Insecure, because crypto occurs in C, not the robust Go crypto
>>    libraries.
>>    - APIs would feel like C, not Go.
>>    - Cannot cross compile by specifying GOOS and GOARCH environment
>>    variables.
>>
>>
>> A decent Go library has to start from scratch, not as a binding of
>> NDN-Lite.
>> Then, it would be go-gettable, and feel natural to Go programmers.
>>
>> Yours, Junxiao
>>
>> On Wed, May 20, 2020 at 6:35 PM Mohammad Ishfaque Jahan Rafee <
>> mij.rafee.1344 at gmail.com> wrote:
>>
>>> Hi Junxiao,
>>> NDN-Go doesn't meet the requirements, but NDN itself does, isn't it? The
>>> way I see it, NDN-Go or python-ndn is binding for the underlying NDN
>>> project. I am not talking about rewriting the whole NDN in Go, which the
>>> previous maintainer did. However, if it's binding to the existing
>>> well-established project, such as NDN, then it starts to make more sense.
>>>
>>> And yes, this initiative is very similar to GSoC.
>>>
>>>
>
> --
> Best Regards
> Rafee
> www.mohammadrafee.com
>


-- 
Best Regards
Rafee
www.mohammadrafee.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndn-interest/attachments/20200615/90708437/attachment.html>


More information about the Ndn-interest mailing list