| Crates.io | ninep |
| lib.rs | ninep |
| version | 0.3.0 |
| created_at | 2024-05-27 20:21:45.089811+00 |
| updated_at | 2025-02-19 19:56:53.075413+00 |
| description | A bare bones 9p implementation |
| homepage | |
| repository | https://github.com/sminez/ad/crates/ninep |
| max_upload_size | |
| id | 1253745 |
| size | 92,636 |
9P is a network protocol developed at Bell Labs for the Plan 9 from Bell Labs distributed operating system as the means of accessing and manipulating resources and applications transparently in a distributed environment. 9P works both as a distributed file system and as a network transparent and language agnostic ‘API’.
The section 5 man pages from plan 9 cover the protocol.
The examples/server.rs file contains a minimal filesystem
that demos the functionality provided by this crate. You can use the 9p
command from https://github.com/9fans/plan9port to interact with the server and
test it out.
See the 9p man page for more information on how the tool works
# Let 9p know where to find the socket we have opened
$ export NAMESPACE="/tmp/ns.$USER.$DISPLAY"
# List the contents of the filesystem and read the contents of a file
$ 9p ls ninep-server
$ 9p read ninep-server/foo
# List the contents of a subdirectory and a file in that subdirectory
$ 9p ls ninep-server/bar
$ 9p read ninep-server/bar/baz
# Read and then update the contents of a file
$ 9p read ninep-server/rw
$ echo "updated" | 9p write ninep-server/rw
$ 9p read ninep-server/rw
The ad text editor provides a full virtual filesystem interface in the style of plan9's acme text editor via its fsys module.