#client #nfs3 #nfs #tokio #rpc #server #connecting

nfs3_client

Provides an implementation of NFS3 client

3 unstable releases

new 0.2.0 Mar 2, 2025
0.1.1 Feb 23, 2025
0.1.0 Feb 22, 2025

#637 in HTTP client

Download history

130 downloads per month

Unlicense

83KB
2.5K SLoC

nfs3_client

nfs3_client is a Rust crate that provides an asynchronous client implementation for interacting with NFSv3 servers. It includes functionality for connecting to NFS servers, performing various NFS operations, and handling the underlying RPC communication.

Examples

use nfs3_client::tokio::TokioConnector;
use nfs3_client::Nfs3ConnectionBuilder;
use nfs3_types::nfs3;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let ip = "127.0.0.1".to_string();
    let mount_path = "/".to_string();

    let mut connection = Nfs3ConnectionBuilder::new(TokioConnector, ip, mount_path)
        .mount()
        .await?;

    let root = connection.root_nfs_fh3();

    println!("Calling readdir");
    let readdir = connection
        .readdir(nfs3::READDIR3args {
            dir: root,
            cookie: 0,
            cookieverf: nfs3::cookieverf3::default(),
            count: 128 * 1024 * 1024,
        })
        .await?;

    println!("{readdir:?}");

    connection.unmount().await?;

    Ok(())
}

Dependencies

~4–13MB
~153K SLoC