Crates.io | sambrs |
lib.rs | sambrs |
version | 0.1.2 |
source | src |
created_at | 2024-07-28 17:42:01.374945 |
updated_at | 2024-07-29 12:26:46.258123 |
description | A tiny ergonomic wrapper around WNetAddConnection2A to connect to SMB shares on Windows. |
homepage | |
repository | https://github.com/samvdst/sambrs |
max_upload_size | |
id | 1318117 |
size | 24,169 |
A tiny ergonomic wrapper around WNetAddConnection2A
and
WNetCancelConnection2A
. The goal is to offer an easy to use interface to
connect to SMB network shares on Windows.
Sam -> SMB -> Rust -> Samba is taken!? -> sambrs
Add this to your Cargo.toml
:
[dependencies]
sambrs = "0.1"
Instantiate an SmbShare
with an optional local Windows mount point and establish
a connection.
When calling the connect method, you have the option to persist the connection
across user login sessions and to enable interactive mode. Interactive mode will
block until the user either provides a correct password or cancels, resulting in
a Canceled
error.
use sambrs::SmbShare;
fn main() {
let share = SmbShare::new(r"\\server\share", "user", "pass", Some('D'));
match share.connect(false, false) {
Ok(()) => println!("Connected successfully!"),
Err(e) => eprintln!("Failed to connect: {}", e),
}
// use std::fs as if D:\ was a local directory
dbg!(std::fs::metadata(r"D:\").unwrap().is_dir());
}
This project is licensed under the MIT License. See the LICENSE file for more details.
Special thanks to Christian Visintin for his informative blog post on accessing SMB shares with Rust on Windows. If you need a fully-featured remote file access solution that works across multiple protocols, you should definitely check out his project remotefs.