-
Notifications
You must be signed in to change notification settings - Fork 8
/
README
172 lines (116 loc) · 5.46 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
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:
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/