-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
224 lines (208 loc) · 12.3 KB
/
index.html
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>libusual: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">libusual
 <span id="projectnumber">0.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">libusual Documentation</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h2><a class="anchor" id="libusual"></a>
libusual</h2>
<p>libusual is utility library.</p>
<p>Unlike APR or GLIB which create their own API world, libusual tries to use standardized API's whenever possible.</p>
<p>Goals for portability APIs:</p>
<ul>
<li>Follow modern POSIX, BSD, glibc. Make the APIs available everywhere.</li>
<li>If compat is impossible, allow the user code to compile - eg. UNIX sockets on win32.</li>
<li>Assume cooparating user:<ul>
<li>libusual needs to implement only API that are used and useful. No need try to provide full POSIX.</li>
<li>user code survives gracefully when libusual provides less functionality.</li>
</ul>
</li>
</ul>
<p>Goals for new APIs:</p>
<ul>
<li>Simple, clear API</li>
<li>Simple, clear implementation.</li>
<li>It is preferable to have simple code which can be copied and modified for some special case than complex code that tries to handle everything at once.</li>
</ul>
<h2><a class="anchor" id="antimake"></a>
Antimake build system.</h2>
<p><a href="mk/">Build system demos and docs</a>.</p>
<h2><a class="anchor" id="modules"></a>
Module list.</h2>
<table class="doxtable">
<tr>
<th colspan="2">Compat includes </th></tr>
<tr>
<td><<a class="el" href="base_8h.html" title="Basic C environment.">usual/base.h</a>> </td><td>Base C environment </td></tr>
<tr>
<td><<a class="el" href="ctype_8h.html" title="ctype compat.">usual/ctype.h</a>> </td><td>ctype compat </td></tr>
<tr>
<td><<a class="el" href="getopt_8h.html" title="getopt compat.">usual/getopt.h</a>> </td><td>Command line argument processing </td></tr>
<tr>
<td><<a class="el" href="err_8h.html" title="Error printing for command-line utilities.">usual/err.h</a>> </td><td>Error handling for command-line tools </td></tr>
<tr>
<td><<a class="el" href="netdb_8h.html" title="DNS lookup.">usual/netdb.h</a>> </td><td>Async DNS lookup </td></tr>
<tr>
<td><<a class="el" href="pthread_8h.html" title="Pthreads compat for win32.">usual/pthread.h</a>> </td><td>Pthreads compat </td></tr>
<tr>
<td><<a class="el" href="signal_8h.html" title="Signals compat.">usual/signal.h</a>> </td><td>Signal compat </td></tr>
<tr>
<td><<a class="el" href="socket_8h.html" title="Socket compat, few utils.">usual/socket.h</a>> </td><td>Socket compat and helper functions </td></tr>
<tr>
<td><<a class="el" href="string_8h.html" title="Theme include for strings.">usual/string.h</a>> </td><td>String compat and helper functions </td></tr>
<tr>
<td><<a class="el" href="time_8h.html" title="*Time-related functionality.">usual/time.h</a>> </td><td>Time compat and helper functions </td></tr>
<tr>
<td><<a class="el" href="fnmatch_8h.html" title="Theme include for strings.">usual/fnmatch.h</a>> </td><td>fnmatch compat </td></tr>
<tr>
<td><usual/wchar.h> </td><td>wchar compat </td></tr>
<tr>
<th colspan="2">Data Structures </th></tr>
<tr>
<td><<a class="el" href="aatree_8h.html" title="AA-Tree - Binary tree with embeddable nodes.">usual/aatree.h</a>> </td><td>Binary Tree </td></tr>
<tr>
<td><<a class="el" href="cbtree_8h.html" title="Crit-bit tree / binary radix tree.">usual/cbtree.h</a>> </td><td>Crit-Bit Tree </td></tr>
<tr>
<td><<a class="el" href="hashtab-impl_8h.html" title="Simple customizable hashtable implementation.">usual/hashtab-impl.h</a>> </td><td>Hash table </td></tr>
<tr>
<td><<a class="el" href="heap_8h.html" title="Binary heap.">usual/heap.h</a>> </td><td>Binary heap </td></tr>
<tr>
<td><<a class="el" href="list_8h.html" title="Circular doubly linked list.">usual/list.h</a>> </td><td>Double-linked list </td></tr>
<tr>
<td><<a class="el" href="mbuf_8h.html" title="Safe and easy access to memory buffer.">usual/mbuf.h</a>> </td><td>Memory buffer </td></tr>
<tr>
<td><<a class="el" href="mdict_8h.html" title="Minimal dict.">usual/mdict.h</a> </td><td>Minimal dict </td></tr>
<tr>
<td><<a class="el" href="shlist_8h.html" title="Circular list for shared mem.">usual/shlist.h</a>> </td><td>Double-linked list for shared mem </td></tr>
<tr>
<td><<a class="el" href="statlist_8h.html" title="Circular list that keep track of stats about the list.">usual/statlist.h</a>> </td><td><a class="el" href="struct_list.html" title="Structure for both list nodes and heads.">List</a> with stats </td></tr>
<tr>
<td><<a class="el" href="strpool_8h.html" title="Storage for shared strings.">usual/strpool.h</a>> </td><td>Refcounted strings </td></tr>
<tr>
<th colspan="2">Data Processing </th></tr>
<tr>
<td><<a class="el" href="bits_8h.html" title="Bit arithmetics.">usual/bits.h</a>> </td><td>Bit arithmetic </td></tr>
<tr>
<td><<a class="el" href="bytemap_8h.html" title="Map 256 byte values to bit or int.">usual/bytemap.h</a>> </td><td>Byte processing </td></tr>
<tr>
<td><<a class="el" href="cfparser_8h.html" title="Config file parser.">usual/cfparser.h</a>> </td><td>Config parser </td></tr>
<tr>
<td><<a class="el" href="endian_8h.html" title="Endianess conversion, convert integers to bytes.">usual/endian.h</a>> </td><td>Endianess conversion </td></tr>
<tr>
<td><<a class="el" href="misc_8h.html" title="Random stuff that does not fit elsewhere.">usual/misc.h</a>> </td><td>Misc arithmetic </td></tr>
<tr>
<td><<a class="el" href="json_8h.html" title="Read and write JSON.">usual/json.h</a>> </td><td>Read/write JSON </td></tr>
<tr>
<td><<a class="el" href="regex_8h.html" title="POSIX regular expession API, provided by either libc or internally.">usual/regex.h</a>> </td><td>POSIX regex compat </td></tr>
<tr>
<td><<a class="el" href="pgutil_8h.html" title="Utility functions for PostgreSQL data formats.">usual/pgutil.h</a>> </td><td>PostgreSQL data formats </td></tr>
<tr>
<td><<a class="el" href="utf8_8h.html" title="Low-level UTF8 handling.">usual/utf8.h</a>> </td><td>Low-level UTF8 handling </td></tr>
<tr>
<th colspan="2">Non-cryptographic hashing </th></tr>
<tr>
<td><<a class="el" href="crc32_8h.html" title="CRC32 checksum.">usual/hashing/crc32.h</a>> </td><td>CRC32 </td></tr>
<tr>
<td><<a class="el" href="lookup3_8h.html" title="Jenkins' lookup3 non-cryptographic hash.">usual/hashing/lookup3.h</a>> </td><td>Jenkins' lookup3 hash </td></tr>
<tr>
<td><<a class="el" href="siphash_8h.html" title="SipHash-2-4.">usual/hashing/siphash.h</a>> </td><td>Siphash </td></tr>
<tr>
<td><<a class="el" href="memhash_8h.html" title="Randomized in-memory hashing.">usual/hashing/memhash.h</a>> </td><td>In-memory randomized hashing </td></tr>
<tr>
<td><<a class="el" href="spooky_8h.html" title="Jenkins SpookyHash V2 - fast hash for 64-bit CPUs.">usual/hashing/spooky.h</a>> </td><td>Jenkins' SpookyHash for 64-bit CPUs </td></tr>
<tr>
<td><<a class="el" href="xxhash_8h.html" title="xxHash - fast hash for 32-bit cpu's.">usual/hashing/xxhash.h</a>> </td><td>Fast hash for 32-bit CPUs </td></tr>
<tr>
<th colspan="2">Cryptography </th></tr>
<tr>
<td><<a class="el" href="csrandom_8h.html" title="Cryptographically Secure Randomness.">usual/crypto/csrandom.h</a>> </td><td>Cryptographically Secure Randomness </td></tr>
<tr>
<td><<a class="el" href="digest_8h.html" title="Common API for cryptographic digests.">usual/crypto/digest.h</a>> </td><td>Common API for cryptographic message digests </td></tr>
<tr>
<td><<a class="el" href="hmac_8h.html" title="HMAC-SHA1 implementation (RFC2104).">usual/crypto/hmac.h</a>> </td><td>HMAC with digest </td></tr>
<tr>
<td><<a class="el" href="md5_8h.html" title="MD5 cryptographic hash.">usual/crypto/md5.h</a>> </td><td>MD5 hash </td></tr>
<tr>
<td><<a class="el" href="sha1_8h.html" title="SHA1 implementation.">usual/crypto/sha1.h</a>> </td><td>SHA1 hash </td></tr>
<tr>
<td><<a class="el" href="sha256_8h.html" title="SHA256 and SHA224 cryptographic hashes.">usual/crypto/sha256.h</a>> </td><td>SHA256/224 hashes </td></tr>
<tr>
<td><<a class="el" href="sha512_8h.html" title="SHA512 and SHA384 cryptographic hashes.">usual/crypto/sha512.h</a>> </td><td>SHA512/384 hashes </td></tr>
<tr>
<td><<a class="el" href="sha3_8h.html" title="SHA3 variants of Keccak.">usual/crypto/sha3.h</a>> </td><td>SHA3/SHAKE hashes </td></tr>
<tr>
<td><<a class="el" href="keccak_8h.html" title="Simple API to Keccak1600 permutation + sponge.">usual/crypto/keccak.h</a>> </td><td>Keccak sponge API </td></tr>
<tr>
<td><<a class="el" href="keccak__prng_8h.html" title="Implements PRNG mode for Keccak sponge function.">usual/crypto/keccak_prng.h</a>> </td><td>PRNG based on Keccak </td></tr>
<tr>
<td><<a class="el" href="entropy_8h.html" title="Load entropy from OS.">usual/crypto/entropy.h</a>> </td><td>Entropy collector </td></tr>
<tr>
<td><<a class="el" href="chacha_8h.html" title="ChaCha cipher.">usual/crypto/chacha.h</a>> </td><td><a class="el" href="struct_cha_cha.html" title="ChaCha state.">ChaCha</a> cipher </td></tr>
<tr>
<th colspan="2">Memory Allocation </th></tr>
<tr>
<td><<a class="el" href="cxalloc_8h.html" title="Context-based Memory Allocator.">usual/cxalloc.h</a>> </td><td>Context Allocator framework </td></tr>
<tr>
<td><<a class="el" href="cxextra_8h.html" title="Extra allocators for cxalloc.">usual/cxextra.h</a>> </td><td>Extra allocators </td></tr>
<tr>
<td><<a class="el" href="mempool_8h.html" title="Simple memory pool for variable-length allocations.">usual/mempool.h</a>> </td><td>Simple append-only memory pool </td></tr>
<tr>
<td><<a class="el" href="slab_8h.html" title="Slab allocator for same-size objects.">usual/slab.h</a>> </td><td>Slab allocator for same-size objects </td></tr>
<tr>
<td><<a class="el" href="talloc_8h.html" title="Talloc - hierarchical memory allocator.">usual/talloc.h</a>> </td><td>Hierarchical allocator </td></tr>
<tr>
<th colspan="2">OS support </th></tr>
<tr>
<td><<a class="el" href="event_8h.html" title="libevent compat.">usual/event.h</a>> </td><td>libevent compat </td></tr>
<tr>
<td><<a class="el" href="daemon_8h.html" title="Daemonization & pidfile handling.">usual/daemon.h</a>> </td><td>Process daemonization </td></tr>
<tr>
<td><<a class="el" href="fileutil_8h.html" title="File access utils.">usual/fileutil.h</a>> </td><td>Various file I/O tools </td></tr>
<tr>
<td><<a class="el" href="logging_8h.html" title="Logging framework for unix services.">usual/logging.h</a>> </td><td>Logging framework for daemons </td></tr>
<tr>
<td><<a class="el" href="pgsocket_8h.html" title="Async Postgres connection framework.">usual/pgsocket.h</a>> </td><td>Async Postgres connection framework </td></tr>
<tr>
<td><<a class="el" href="safeio_8h.html" title="EINTR-safe I/O functions.">usual/safeio.h</a>> </td><td>Safety wrappers around OS I/O </td></tr>
</table>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>