3 releases (breaking)

new 0.3.0 Mar 8, 2025
0.2.0 Mar 1, 2025
0.1.0 Feb 7, 2025

#14 in #file-sharing

Download history 115/week @ 2025-02-05 15/week @ 2025-02-19 162/week @ 2025-02-26

292 downloads per month

MIT license

435KB
11K SLoC

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.

Dependencies

~17–46MB
~696K SLoC