smb 0.3.0

A Pure Rust SMB Client implementation
docs.rs failed to build smb-0.3.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: smb-0.11.2

Pure Rust SMB Client

This project is the first full-rust implementation of a SMB client, currently supporting SMB 3.1.1.

Getting started

Running the project is as simple as:

cargo run --features async -- --help

Check out the info and the copy sub-commands for more information.

For advanced usage, see the Advanced Usage section.

Features

General

  • ✅ SMB 3.1.1 dialect support.
  • ✅ Async/Multi-threaded/Single-threaded backends.
  • ✅ File & Directory read/write/information operations.
  • ✅ Compression & Encryption support.
  • ✅ Windows, Linux & MacOS support.
  • ✅ CLI tool for basic operations.

You are welcome to see the project's roadmap in the GitHub Project.

Algorithm Support matrix

Type Algorithm Supported Feature Name
Signing All - sign
Signing HMAC_SHA256 sign_hmac
Signing AES-128-GCM sign_gmac
Signing AES-128-CCM sign_cmac
Encryption All - encrypt
Encryption AES-128-CCM encrypt_aes128ccm
Encryption AES-128-GCM encrypt_aes128gcm
Encryption AES-256-CCM encrypt_aes256ccm
Encryption AES-256-GCM encrypt_aes256gcm
Compression All - compress
Compression LZ4 compress_lz4
Compression Pattern_V1 compress_pattern_v1
Compression LZNT1
Compression LZ77
Compression LZ77+Huffman

Advanced Usage

To build the project, run the following command:

cargo build --features async

The project supports async, multi-threaded, and single-threaded backends. The async backend is the recommended one, but you can enable the other backends by using the following features:

  • async: Enables the async backend.
  • single_threaded: Enables the single-threaded backend.
  • multi_threaded: Enables the multi-threaded backend.