On Sun, Feb 19, 2017 at 5:39 PM, Jason E. Aten <j.e.a...@gmail.com> wrote:
> I'd like to play with the 9p protocol (plan9's "everything is a filesystem"
> IPC protocol; I guess the updated 9p2000 version is the one everyone
> actually uses) ...
>
> ...but the implementations I can find in Go seem
> half-done/incomplete/unmaintained.
>
> http://9p.cat-v.org/implementations  + other searches turned up:
>
>
> 0) https://github.com/9fans/go - Last commit 2 years ago. 2 outstanding
> issues, 8 outstanding pull requests. Appears orphaned.
>

There are more packages that are part of 9fans.net/go than things for
dealing with 9p, so it's possible that none of the outstanding issues
will affect whatever it is you're trying to do.

> 1) https://code.google.com/p/go9p/ seems to be superceeded by
> https://github.com/lionkov/go9p - 6 open issues including race conditions
> that appear quite serious.
>

I don't know anything about this one.

> 2) https://github.com/rminnich/go9p/  - last commit in 2015, 3 outstanding
> issues, 7 outstanding pull requests
>
> 3) https://github.com/Harvey-OS/ninep - recent activity as of 11 days ago
> (yay), but an open issue indicates ongoing data races and experimentation
> with the implementation that indicates it is likely not stable or usable by
> 3rd parties.
>

ron minnich is also behind Harvey-OS (with others), so  I'd guess that
2) is  superceded by 3).

> 4) https://github.com/docker/go-p9phttps://github.com/docker/go-p9p - six 
> open issues, some of them serious
> and indicating that it cannot interoperate with other 9p implementations
>
> 5) https://github.com/joushou/qp  - very little documentation and its build
> is failing
>

I don't know anything about these either.

> So to my question...
>
> Does anyone know of, or have a pointer to, a working/solid/correct 9p
> (9p2000) client/server library in Go?
>
>
> Perhaps the authors of the above could chime in and clarify if their package
> *is* actually in good shape, despite appearances.
>
>
> NB the problematic licensing of any code derived from the original C
> implementation means I'll need to locate a non-Lucent  license in order to
> use a lib. So this rules out a straight port of the C.
>

The original Plan 9 code was eventually released under the GPL.
There's a mirror of the GPLed code at
https://github.com/0intro/plan9-gpl.

Note that the "original C implementation" is in the Plan 9 C dialect,
not ANSI C.. but Plan 9 C is closer to Go than ANSI C is, so if you're
looking to port the original to Go and you'd be comfortable doing it
with ANSI C, you should be fine.

You might also want to look into intro(5) either in the above repo, or
an online copy of the man pages for any of the many Plan 9 forks.
Section 5 of the man pages define the 9p protocol.
-- 
- Dave

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to