rustydav

build tests crates.io Documentation GPL-3.0 licensed

Implementation of webdav requests in rust

This is a small library written in rust and inspired by hyperdav and uses reqwest library as the base.

This library can be used to make calls to webdav server.

Supported methods are: - get - put - delete - unzip - mkcol - mv - list

Changelog

Example

Small example how to use this library

include rustydav as a dependency rust [dependencies] rustydav = "0.1.2" Then add this to your code ```rust extern crate rustydav;

use rustydav::client; use rustydav::prelude::*; Short methods call examples rust // Every method will return a Result

if (result.is_ok() { // the method completed with success } else { // somenting when wrong }

// Create the client let client = client::Client::init(/username/, /password/);

// Get some file from server // The result will contain the file data let result = client.get(/absolute url to the server file location/);

// Upload a file to server. It can be any type of file as long as it is transformed to a vector of bytes (Vec). // This can be achieved with std::fs::File or zip-rs for sending zip files. let result = client.put(/Vec/, /absolute path to the server file location/);

// Delete a remote file from the server let result = client.delete(/absolute path to the file on the server/);

// Unzip a zip archive on the server let result = client.unzip(/absolute path to the zip archive on the server/);

// Create a new directory on server let result = client.mkcol(/absolute path to the server where to create the new folder/);

// Rename or move a file / folder / zip on the server // If the file location changes it will move the file, if only the file name changes it will rename it. let result = client.mv(/absolute path on the server for old file location/name/, /absolute on the server for new file location/name/);

// List files and folders at the given path on the server // Depth of "0" applies only to the resource, "1" to the resource and it's children, "infinity" to the resource and all it's children recursively // The result will contain an xml list with the remote folder contents. let result = client.list(/absolute path on the server to list the files/, /depth being "0", "1" or "infinity"/); ``` For some description about them please see the client.rs file.