nine
----
9p for rust.
## todo
should I move the proto parsing into another library?
+ can add tests, which is nice
+ can separate parsing and codegen better
+ can do stuff like allow exporting JSON
can I make it depend on itself?
- all build dependencies become library dependencies
nine-description
remove die!, etc, from spec
rustfmt
generate const values,
generate t and r enums
generate message structs
generate buffer to message deserializers:
- validate buffer size
- deserialize into struct
* describe a stat object
* check that R=T+1
* add functionality to read a 9p message without parsing it at all
* testing
- design heirarchical env filesystem
* make sure that it works as a dependency post publish
(worried that .txt and templates won't be bundled)
* also output documentation
* adapters
- listen on network socket
- open unix domain socket
- stdin and stdout
- with forking
- with threads
- with non-blocking select with connection id
- with subprocess stdin/stdout
* basic interface: read message, write message
* thrifty interface:
- read message into buffer, verify, no copy
- write takes all arguments and writes them directly into buffer
* trait based interface: constrained as much as possible
* support 9p2000.u, 9p2000.l
* codegen libraries for other languages:
- python2/3
- c
- c++
- object c
- swift
- java
- node
- go
- forth
- mips
- arm
- x86
- haskell
- perl
- perl6
- scala
- ocaml
- ruby
- common lisp
- scheme
- racket
- tcl
- sh
- c#
references
----------
http://ericvh.github.io/9p-rfc/