Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pfpacket/rust-9p
Tokio-based asynchronous filesystems library using 9P2000.L protocol, an extended variant of 9P from Plan 9.
https://github.com/pfpacket/rust-9p
9p 9p2000 9pfs fileserver filesystem-library linux plan9 rust
Last synced: 26 days ago
JSON representation
Tokio-based asynchronous filesystems library using 9P2000.L protocol, an extended variant of 9P from Plan 9.
- Host: GitHub
- URL: https://github.com/pfpacket/rust-9p
- Owner: pfpacket
- License: bsd-3-clause
- Created: 2015-06-20T00:54:31.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-02-04T01:36:59.000Z (over 1 year ago)
- Last Synced: 2024-02-19T20:46:25.399Z (4 months ago)
- Topics: 9p, 9p2000, 9pfs, fileserver, filesystem-library, linux, plan9, rust
- Language: Rust
- Homepage:
- Size: 13.1 MB
- Stars: 118
- Watchers: 10
- Forks: 14
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- my-awesome-stars - rust-9p - based asynchronous filesystems library using 9P2000.L protocol, an extended variant of 9P from Plan 9. | pfpacket | 115 | (Rust)
- awesome-9p - rust-9p - Rust library for 9p2000.L (Libraries / Rust)
- awesome-stars - pfpacket/rust-9p - Tokio-based asynchronous filesystems library using 9P2000.L protocol, an extended variant of 9P from Plan 9. (rust)
- awesome-stars - pfpacket/rust-9p - Tokio-based asynchronous filesystems library using 9P2000.L protocol, an extended variant of 9P from Plan 9. (Rust)
README
rust-9p
=====
Tokio-based asynchronous filesystems library using 9P2000.L protocol, an extended variant of 9P from Plan 9.[![Build Status](https://travis-ci.org/pfpacket/rust-9p.svg?branch=master)](https://travis-ci.org/pfpacket/rust-9p)
[Documentation](https://pfpacket.github.io/rust-9p/rs9p/index.html)
## Build
Use Rust nightly.## Usage
Add the following to your crate:```rust
extern crate rs9p;
```## unpfs
`unpfs` is the reference implementation of a file server which exports your filesystem.
You can build unpfs with the following commands below:```bash
cd example/unpfs/
cargo build --verbose --release
```
and run unpfs with the following command to export `/exportdir`:```bash
# TCP
cargo run --release 'tcp!0.0.0.0!564' /exportdir
# or
./target/release/unpfs 'tcp!0.0.0.0!564' /exportdir# Unix domain socket:
# port number is a suffix to the unix domain socket
# 'unix!/tmp/unpfs-socket!n' creates `/tmp/unpfs-socket:n`
cargo run --release 'unix!/tmp/unpfs-socket!0' /exportdir
```
You are now ready to import/mount the remote filesystem.
Let's mount it at `/mountdir`:```bash
# TCP
sudo mount -t 9p -o version=9p2000.L,trans=tcp,port=564,uname=$USER 127.0.0.1 /mountdir
# Unix domain socket
sudo mount -t 9p -o version=9p2000.L,trans=unix,uname=$USER /tmp/unpfs-socket:0 /mountdir
```| Mount option | Value |
|---|---|
| version | must be "9p2000.L" |
| trans | an alternative v9fs transport. "tcp" or "unix" |
| port | port to connect to on the remote server |
| uname | user name to attempt mount as on the remote server |See [v9fs documentation](https://www.kernel.org/doc/Documentation/filesystems/9p.txt) for more details.
## License
rust-9p is distributed under the BSD 3-Clause License.
See LICENSE for details.