Coder Social home page Coder Social logo

zjpanghao / libzdb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mverbert/libzdb

0.0 2.0 0.0 20.25 MB

A thread-safe multi database connection pool library, cloned from https://bitbucket.org/tildeslash/libzdb

Home Page: http://www.tildeslash.com/libzdb/

License: GNU General Public License v3.0

Makefile 1.06% Shell 0.09% M4 6.61% C 82.30% C++ 9.94%

libzdb's Introduction

                            Libzdb
                                       
 Introduction
 ------------

 Libzdb is a database library with thread-safe connection pooling. The
 library can connect transparently to multiple database systems. It has
 zero runtime configuration and connection is specified via a URL scheme.


 System requirements
 -------------------

 * Memory and Disk space

   A minimum of 1 megabytes RAM are required and around 700KB of free
   disk space. You may need more RAM depending on how many Connections
   the library should create.

 * C99 Compiler and Build System

   You will need a C99 compiler installed to build the library. The 
   GNU C compiler (GCC) from the Free Software Foundation (FSF) is
   recommended. In addition, your PATH must contain basic build tools
   such as make and database configuration scripts for MySQL and 
   PostgreSQL, that is, mysql_config and pg_config respectively.
   
 * Database systems
 
   This Software supports the following database systems, 
     - MySQL         - version 4.1 or above
     - PostgreSQL    - version 8.0 or above 
     - SQLite        - version 3.0 or above
     - Oracle        - version 10 or above
   Client libraries for at least one of these database systems must
   be installed on the host on which this Software will be built.
 
 
 Installation
 ------------
 
 This library utilize the GNU auto-tools and provided the requirements
 above are satisfied, building the library is conducted via the
 standard;

  ./configure
  make
  make install 
 
 Use ./configure --help for build and install options. By default, the
 library is built with support for MySQL, PostgreSQL and SQLite. You may
 change this with the --without-<database> options to ./configure. E.g.
 --without-mysql, --without-postgresql or --without-sqlite. 
 
 To verify the library and run unit tests, do 'make verify'. You may
 also want to take a look at test/select.c for an example on how to use
 the library.
  
 Note that unit tests cannot be built if the --enable-protected
 configure switch was used. This switch is used to package protect
 non-API objects in the library. It is strongly recommended to build the
 library with --enable-protected as it will be faster and reduce the risk
 for name symbol interposing


 API Documentation
 -----------------
 
 The directory doc/api-docs/ and index.html contains the full API
 documentation for the library, generated by Doxygen. Start by reading
 the documentation for ConnectionPool.h
  

 Exceptions handling
 -------------------
 
 The library implements an elegant solution for thread-safe exceptions
 handling. Use of exceptions frees programmers from the tedious return
 code idiom for dealing with errors. The API documents every method that
 can throw an exception. Methods that can throw an exception should be
 called from inside a try-block.
  

 Link and include
 ----------------
 
 Clients may use the following meta interface to include libzdb API
 interfaces;
 
 #include <zdb.h>
 
 Alternatively, libzdb API interfaces can be included separately
 as needed.

 Compile and link with libzdb;

 gcc -o select select.c -L/<prefix>/lib -lzdb -I/<prefix>/include/zdb
 
 On some systems you may have to explicit link with -lpthread and
 set LD_LIBRARY_PATH if libzdb was installed in a non-standard location
 
 Libzdb can be used directly in a C++ or in a Objective-C(++) project. The 
 <zdb.h> header contains the 'extern "C"' statement which is required when
 importing C declarations into C++ code and linking with a C library.
 
  
 License Notes
 -------------

 This Software product is licensed under the GNU General Public License
 version 3. You can use this Software product free of charge to develop,
 use and distribute Open Source application programs, including reusable
 components and other software that link with the Software. You may also
 use and modify any example source code included with the Software for
 any purpose.
  
 See the file COPYING accompanying the Software for details. 


 Reporting a bug
 ---------------

 If you believe you have found a bug, please use the issue tracker 
 mentioned at http://www.tildeslash.com/libzdb/#contact to report the 
 problem. Remember to include the necessary information that will enable 
 us to understand and reproduce this problem. Alternatively, you can
 send us an email at [email protected]


 Questions and support
 ---------------------

 If you have questions or comments about the software or documentation 
 please subscribe to the libzdb general mailing list and post your 
 questions there. 
 
   http://www.tildeslash.com/mailman/listinfo/libzdb-general


 Contributing
 ------------
 
 You are welcome to contribute to this project, but please note that
 an electronically signed CLA is required to be on file before any Pull 
 Request or patches are accepted or you are given commit rights to the 
 project. To sign, go to http://tildeslash.com/cla/


 Contact information
 -------------------

 Libzdb is a product of Tildeslash Ltd. a company registered in
 Norway and in United Kingdom.
 
 For further information about this Software, please use the following 
 contact information.

 E-mail:
   [email protected]

 Internet:
   http://www.tildeslash.com/libzdb/
   

 Acknowledgments
 ---------------

 The design of this library was inspired by principles put forth by 
 David R. Hanson <[email protected]> in his excellent book 
 "C Interfaces and Implementations". You can learn more about this 
 book here http://www.cs.princeton.edu/software/cii/

libzdb's People

Contributors

tildeslash avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.