Skip to content

nevermatch/davix

 
 

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 https://github.com/cern-it-sdc-id/davix.git davix
        $ cd davix
        $ mkdir build; cd build
        $ cmake ../
        $ make 
          

    - Generate doc :
        - * run cmake
        - make doc
        
    - Compile Davix in embedded mode ( no dependencies ) :
        $ git clone https://github.com/cern-it-sdc-id/davix.git 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-mv: relocate resource



     * Davix Support or information :

     	Any suggestion is welcome.

        please contact us on davix-devel@cern.ch ( CERN e-group & mailing list ) or personnaly on adrien.devresse@cern.ch

        Davix is an open source and free project and will stay like this.
        Any contribution is welcome


About

davix IT-SDC-ID repository, sync repos with git.cern.ch

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 80.8%
  • Python 11.4%
  • CMake 6.1%
  • Shell 1.4%
  • Other 0.3%