This is Bold. A version 4-series compatible NFS server written in async Rust based on Tokio.
NFS is the most widely used network file system for production server workloads.
(This is a Bold claim)
Bold's design goals are:
- simplicity
- robustness
- portability
- extendability
- performance
Anti goals include complicated compile-time computations, such as macro or type trickery.
There is a binary bold-mem
(in /exec), which reads in a
YAML file and serves this as in-memory file system.
On Linux:
# bold-mem/memoryfs.yaml
name:
contents:
- !Dir
name: home
contents:
- !Dir
name: user
contents:
- !File
name: file1
contents: |
This is the content of file1
- !File
name: file2
contents: |
This is the content of file2
You can compile and run it from the repo:
-
cargo run -p bold-mem -- --debug exec/memoryfs.yam
(optionally, you can enable the--debug
flag) -
Open another terminal
-
mkdir /tmp/demo
-
sudo mount.nfs4 -n -v -o fg,soft,sec=none,vers=4.0,port=11112 127.0.0.1:/ /tmp/demo
-
ls /tmp/demo/
,cat /tmp/demo/home/user/file1
(have a look around in your mounted file system) -
Copy files from your local computer into the mounted file system and retrive it back
-
Don't forget to unmount
sudo umount /tmp/demo
, before stoppingbold-mem
- WIP
- Not started
- Not started
- XDR: External Data Representation Standard
- Network File System (NFS) Version 4 Protocol
- Network File System (NFS) Version 4 Minor Version 1 Protocol
- Network File System (NFS) Version 4 Minor Version 2 Protocol
Distributed under the MIT license. See LICENSE
for more information.