-
Notifications
You must be signed in to change notification settings - Fork 0
Simple C library for high level Webdav interactions.
License
mhellmic/davix
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
=== DAVIX ===
Davix provides a share library and tools for advanced file I/O
with HTTP based protocols. It is compatible WebDav, S3, HTTP
Davix is composed of a shared library, libdavix and of a set of utility tools for data management
Libdavix offers a high level C++ File API allowing resource manipulation with abstraction of the protocol.
Libdavix has been design with the following objectives in mind :
- Simplicity
- High performances
- Reliability
- Portability
* Davix and libdavix Website and documentation link :
http://dmc.web.cern.ch/projects/davix/home
* Is Davix is an other HTTP Library ?
No, Davix targets file and resources interactions.
It provides a high level abstraction of the underlying HTTP protocol mechanisms
* What does Davix support ?
Davix supports :
- all common file manipulation operations ( Stat, read, write, copy, delete, rename )
- all common posix operation ( stat/opendir/readdir/open/read/write/close/mkdir )
- Webdav and XML parsing
- remote random I/O
- client side credential in PEM, P12 format, VOMS proxy, RFC proxy with support of VOMS extensions
- transparent redirection caching
- third party copy Server to Server
- Session reuse for both SSL and HTTP
- Basic authentication scheme
- S3 authentication
- bulk operations
- metalinks
Davix is going to support soon :
- transparent meta-link support with failover
- kerberos auth
* How to compile :
- Davix Dependencies :
- openssl
- libxml-2.0
- boost (available as submodule)
- doxygen ( optional, for doc generation )
- gtest ( optional, unit tests only )
- Compile :
$ # For Mac OSX and grid usage, see Compile Davix in embedded mode
$ git clone http://git.cern.ch/pub/davix davix
$ cd davix
$ mkdir build; cd build
$ cmake ../
$ make
- Generate doc :
- * run cmake
- make doc
- Compile Davix in embedded mode ( no dependencies ) :
$ git clone http://git.cern.ch/pub/davix davix
$ cd davix
$ git submodule update --recursive --init
$ mkdir build; cd build
$ cmake -D BOOST_EXTERNAL=NO ../
$ make
- Compile and run unit tests :
- cmake -DUNIT_TESTS=TRUE ../
- make
- make test
- Compile & execute func tests :
* warning : functionals test needs davserver and a valid credential
- " 4. cmake -DFUNCTIONAL_TESTS=TRUE ../ "
- " 5. . ../test/setup_test_env.sh
- " 5. make; make test"
- create SRPM :
- ./packaging/bin/packager_rpm.sh ./packaging/rpm/specs/ ./
- mock -r [mycfg] RPMS/davix-[...].src.rpm
* How to use
* Libdavix, please follow the comments in the doxygen generated documentation
* Command line tools
davix-ls: listing and meta-data
davix-del: delete existing resource or collection
davix-get: download and display the content of a resource
davix-put: upload the content of a resource
davix-cp: copy, support 3rd party copy
davix-mk: create collection or resource.
* Davix Support or information :
Any suggestion is welcome.
please contact us on [email protected] ( CERN e-group & mailing list ) or personnaly on [email protected]
Davix is an open source and free project and will stay like this.
Any contribution is welcome
About
Simple C library for high level Webdav interactions.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published