# webdav-rs [![Build Status][ci-badge]][ci-link] [![REUSE Compliance Check][reuse-badge]][reuse-link] [![crates.io][crates-badge]][crates-link] [![Documentation][docs-badge]][docs-link] ![License: MIT OR Apache-2.0][license-badge] [ci-badge]: https://github.com/d-k-bo/webdav-rs/actions/workflows/ci.yaml/badge.svg?branch=main [ci-link]: https://github.com/d-k-bo/webdav-rs/actions?query=workflow%3ACI [reuse-badge]: https://github.com/d-k-bo/webdav-rs/actions/workflows/reuse.yaml/badge.svg?branch=main [reuse-link]: https://reuse.software/ [crates-badge]: https://img.shields.io/crates/v/webdav-meta [crates-link]: https://lib.rs/crates/webdav-meta [docs-badge]: https://img.shields.io/docsrs/webdav-meta [docs-link]: https://docs.rs/webdav-meta [license-badge]: https://img.shields.io/crates/l/webdav-meta Reusable types for implementing WebDAV clients and servers based on [RFC 4918][rfc]. This crate is intended to be used together with libraries that build on the general-purpose [`http`][http] crate. [rfc]: http://webdav.org/specs/rfc4918.html [http]: https://docs.rs/http/latest/http/ ## Usage ```sh cargo add webdav-meta --rename webdav ``` ## Implemented features
HTTP Methods HTTP methods are currently defined as static variables, but should be moved to constants in the future. - [X] `PROPFIND` - [X] `PROPPATCH` - [X] `MKCOL` - [X] `COPY` - [X] `MOVE` - [X] `LOCK` - [X] `UNLOCK`
HTTP Headers - [X] `DAV` - [X] `Depth` - [X] `Destination` - [X] `If` - [X] `Lock-Token` - [X] `Overwrite` - [X] `Timeout`
XML Elements - [ ] `activelock` - [X] `allprop`: internally implemented for `Propfind` - [X] `collection`: internally implemented for `ResourceType` - [ ] `depth` - [ ] `error`: currently just a string - [ ] `exclusive` - [X] `href` - [X] `include` - [ ] `location` - [ ] `lockentry` - [ ] `lockinfo` - [ ] `lockroot` - [ ] `lockscope` - [ ] `locktoken` - [ ] `locktype` - [X] `multistatus` - [ ] `owner` - [X] `prop` - [ ] `propertyupdate` - [X] `propfind` - [X] `propname`: internally implemented for `Propfind` - [X] `propstat` - [ ] `remove` - [X] `response` - [X] `responsedescription` - [ ] `set` - [ ] `shared` - [ ] `status` - [ ] `timeout` - [ ] `write`
DAV properties - [X] `creationdate` - [X] `displayname` - [X] `getcontentlanguage` - [X] `getcontentlength` - [X] `getcontenttype` - [X] `getetag` - [X] `getlastmodified` - [X] `lockdiscovery` - [X] `resourcetype` - [X] `supportedlock`
## License Licensed under either of - Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or https://apache.org/licenses/LICENSE-2.0) - MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT) ## Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.