Skip to content

fredldotme/qwebdavlib

 
 

Repository files navigation

QWebDAV Library (qwebdavlib) version 1.0

is a library for Qt4, Qt5 and Qt6 and provides access to WebDAV servers.
WebDAV is an extension for HTTP, so that a Web server can
provide write access in addition to read access. The WebDAV
standard provides the essential functionalities to access
a Web server like a file server.

More information
    https://en.wikipedia.org/wiki/WebDAV

WebDAV standard as RFC4918:
    "HTTP Extensions for Web Distributed Authoring and
    Versioning (WebDAV)" from June 2007
        https://datatracker.ietf.org/doc/html/rfc4918

This library has been derived from previous works
    QWebdav plugin for MeeDav (LGPL v2.1)
        http://projects.developer.nokia.com/meedav/
    QWebdav - WebDAV lib for Qt4 (LGPL v2.1)
        http://xf.iksaif.net/dev/qwebdav.html

Tested WebDAV server:
    * Apache HTTP Server with mod_dav
        Apache/2.2.14, https://httpd.apache.org/
    * Microsoft Internet Information Service 7.5 (MS IIS 7.5)
      as used by Windows 7 and Windows Server 2008 R2
    * SabreDAV - WebDAV framework for PHP
        SabreDAV 1.6.1-stable, https://sabre.io/dav/

QWebdav Library supports the following authentication methods,
depending on the Qt version it is built with:

    * Basic (Qt4, Qt5, Qt6)
        https://en.wikipedia.org/wiki/Basic_access_authentication
    * NTLM version 1 (older Windows challenge-response authentication) (Qt4)
        https://en.wikipedia.org/wiki/NTLM
    * NTLM version 2 (Qt5, Qt6)
        https://en.wikipedia.org/wiki/NTLM#NTLMv2
    * Digest-MD5 (Qt4, Qt5, Qt6)
        https://en.wikipedia.org/wiki/Digest_access_authentication
    * SPNEGO (Qt5, Qt6)
        https://en.wikipedia.org/wiki/SPNEGO

More information on authentication:
    * Qt5
        https://doc.qt.io/archives/qt-5.15/qauthenticator.html
    * Qt6
        https://doc.qt.io/qt-6/qauthenticator.html


## Building QWebDAV

The library can be built with your choice of meta-buildsystem:
CMake or qmake. There are minor differences in the resulting
installed files:
- CMake build installs only one copy of the headers, and installs
  both CMake and pkgconfig files for finding the library.
  The SOVERSION is 1, which can be linked as .so, .so.1 and .so.1.0.0.
- qmake build installs one copy of the headers per Qt version and
  installs only pkgconfig files. The SOVERSION is 1, which can
  be linked as .so, .so.1, .so.1.0 and .so.1.0.0.

An example program is also built, but not installed.

## Using QWebDAV from your Project

If your project uses CMake as a meta-buildsystem, the `qwebdavlibExample/`
directory contains an example of how to do so. Use `find_package(QWebdav)`
as shown in the example. You can also use CMake's `pkgconfig` support,
also shown in the example. If your project uses another buildsystem,
use `pkgconfig` to find QWebDAV.

To use this example as an independent build, run
```
cmake -S qwebdavlibExample -B build-example
make -C build-example
```
(optionally, use a different `-B` build directory, or a different
build-system generator like `-G Ninja`)

About

Qt library for WebDAV with support for HTTP/HTTPS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 83.1%
  • CMake 10.6%
  • QMake 3.4%
  • C 2.9%