Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:update web docs
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:4732722534353722e7e6d7e5ae009e46b9a692aa
User & Date: brandon 2016-06-12 20:00:05
Context
2016-06-12
20:01
update web docs check-in: b6d26739c7 user: brandon tags: trunk
20:00
update web docs check-in: 4732722534 user: brandon tags: trunk
19:33
remove more swbis stuff from Makefile.am check-in: a39e686ced user: brandon tags: trunk, v3.0
Changes

Deleted www/html_node/Back_002dends.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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".

A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Back-ends</title>

<meta name="description" content="zeptodb: Back-ends">
<meta name="keywords" content="zeptodb: Back-ends">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Introduction.html#Introduction" rel="up" title="Introduction">
<link href="Commands.html#Commands" rel="next" title="Commands">
<link href="Tutorial.html#Tutorial" rel="prev" title="Tutorial">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Back_002dends"></a>
<div class="header">
<p>
Previous: <a href="Tutorial.html#Tutorial" accesskey="p" rel="prev">Tutorial</a>, Up: <a href="Introduction.html#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Back_002dends-1"></a>
<h3 class="section">1.2 Back-ends</h3>

<p>By default, zeptodb uses the <a href="http://www.gnu.org/software/gdb">GNU dbm</a> (GDBM) library to create and manipulate the DBM databases.
Alternatively, you may choose to use the
<a href="http://fallabs.com/kyotocabinet/">Kyoto Cabinet</a> library
instead.  This is specified by passing the
<samp>--with-kyotocabinet</samp> option to the <samp>configure</samp> script
before compiling zeptodb.
</p>
<p>Note that databases created with these two different back-ends are
<em>not</em> compatible, thus databases created with Kyoto Cabinet can
only be accessed by zeptodb if it has been compiled with support for
the library.
</p>
<p>Databases created with Kyoto Cabinet are required to have the
<samp>.kch</samp> file extension.  By convention, databases created with
GDBM should have the <samp>.db</samp> file extension.
</p>
<p>For most purposes, databases created with GDBM should be sufficient.
For particularly large data sets, however, Kyoto Cabinet is
preferred, since it can add values more quickly and has a much larger
upper limit on the database size.  On the other hand, Kyoto Cabinet is
not as widely available in GNU/Linux distributions as GDBM so it often
must be installed manually.
</p>



</body>
</html>
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<




















































































































































































































Changes to www/html_node/Commands.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Commands</title>

<meta name="description" content="zeptodb: Commands">
<meta name="keywords" content="zeptodb: Commands">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="zdbc.html#zdbc" rel="next" title="zdbc">
<link href="Back_002dends.html#Back_002dends" rel="prev" title="Back-ends">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Commands"></a>
<div class="header">
<p>
Next: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="n" rel="next">Copying This Manual</a>, Previous: <a href="Introduction.html#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Commands-1"></a>
<h2 class="chapter">2 Commands</h2>

<p>Three commands are provided with zeptodb: <code>zdbc</code>, for creating
databases, <code>zdbs</code> for storing records in them, <code>zdbf</code>,
for fetching records, and <code>zdbr</code>, for removing records.

</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="zdbc.html#zdbc" accesskey="1">zdbc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbs.html#zdbs" accesskey="2">zdbs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbf.html#zdbf" accesskey="3">zdbf</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbr.html#zdbr" accesskey="4">zdbr</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">


</td></tr>
</table>





</body>
</html>


|

|







 







|







 







|



>
>



<



<










<
|
|




>




|









|

|
>









>
>









1
2
3
4
5
6
7
8
9
10
11
12
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Commands</title>

<meta name="description" content="zeptodb: Commands">
<meta name="keywords" content="zeptodb: Commands">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="zdbc.html#zdbc" rel="next" title="zdbc">
<link href="Common-Options.html#Common-Options" rel="prev" title="Common Options">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="Commands"></a>
<div class="header">
<p>
Next: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="n" rel="next">Copying This Manual</a>, Previous: <a href="Introduction.html#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Commands-1"></a>
<h2 class="chapter">2 Commands</h2>

<p>Five commands are provided with zeptodb: <code>zdbc</code>, for creating
databases, <code>zdbs</code> for storing records in them, <code>zdbf</code>,
for fetching records, <code>zdbr</code>, for removing records, and
<code>zdbi</code> for displaying information about a database.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="zdbc.html#zdbc" accesskey="1">zdbc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbs.html#zdbs" accesskey="2">zdbs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbf.html#zdbf" accesskey="3">zdbf</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbr.html#zdbr" accesskey="4">zdbr</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbi.html#zdbi" accesskey="5">zdbi</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>





</body>
</html>

Changes to www/html_node/Copying-This-Manual.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Copying This Manual</title>

<meta name="description" content="zeptodb: Copying This Manual">
<meta name="keywords" content="zeptodb: Copying This Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License" rel="next" title="GNU Free Documentation License">
<link href="zdbr.html#zdbr" rel="prev" title="zdbr">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Copying-This-Manual"></a>
<div class="header">
<p>
Next: <a href="Index.html#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="Commands.html#Commands" accesskey="p" rel="prev">Commands</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Copying-This-Manual-1"></a>


|

|







 







|







 







|



>
>



<



<










<
|
|




>




|







1
2
3
4
5
6
7
8
9
10
11
12
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Copying This Manual</title>

<meta name="description" content="zeptodb: Copying This Manual">
<meta name="keywords" content="zeptodb: Copying This Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License" rel="next" title="GNU Free Documentation License">
<link href="zdbi.html#zdbi" rel="prev" title="zdbi">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="Copying-This-Manual"></a>
<div class="header">
<p>
Next: <a href="Index.html#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="Commands.html#Commands" accesskey="p" rel="prev">Commands</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Copying-This-Manual-1"></a>

Changes to www/html_node/GNU-Free-Documentation-License.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: GNU Free Documentation License</title>

<meta name="description" content="zeptodb: GNU Free Documentation License">
<meta name="keywords" content="zeptodb: GNU Free Documentation License">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Copying-This-Manual.html#Copying-This-Manual" rel="up" title="Copying This Manual">
<link href="Index.html#Index" rel="next" title="Index">
<link href="Copying-This-Manual.html#Copying-This-Manual" rel="prev" title="Copying This Manual">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="GNU-Free-Documentation-License"></a>
<div class="header">
<p>
Previous: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="p" rel="prev">Copying This Manual</a>, Up: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="u" rel="up">Copying This Manual</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="GNU-Free-Documentation-License-1"></a>


|

|







 







|







 







>
>



<



<










<
|
|




>




|







1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: GNU Free Documentation License</title>

<meta name="description" content="zeptodb: GNU Free Documentation License">
<meta name="keywords" content="zeptodb: GNU Free Documentation License">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Copying-This-Manual.html#Copying-This-Manual" rel="up" title="Copying This Manual">
<link href="Index.html#Index" rel="next" title="Index">
<link href="Copying-This-Manual.html#Copying-This-Manual" rel="prev" title="Copying This Manual">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="GNU-Free-Documentation-License"></a>
<div class="header">
<p>
Previous: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="p" rel="prev">Copying This Manual</a>, Up: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="u" rel="up">Copying This Manual</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="GNU-Free-Documentation-License-1"></a>

Changes to www/html_node/Index.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Index</title>

<meta name="description" content="zeptodb: Index">
<meta name="keywords" content="zeptodb: Index">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License" rel="prev" title="GNU Free Documentation License">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Index"></a>
<div class="header">
<p>
Previous: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="p" rel="prev">Copying This Manual</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Index-1"></a>


|

|







 







|







 







>
>



<



<










<
|
|




>




|







1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Index</title>

<meta name="description" content="zeptodb: Index">
<meta name="keywords" content="zeptodb: Index">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License" rel="prev" title="GNU Free Documentation License">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="Index"></a>
<div class="header">
<p>
Previous: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="p" rel="prev">Copying This Manual</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Index-1"></a>

Changes to www/html_node/Introduction.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Introduction</title>

<meta name="description" content="zeptodb: Introduction">
<meta name="keywords" content="zeptodb: Introduction">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="Tutorial.html#Tutorial" rel="next" title="Tutorial">
<link href="index.html#Top" rel="prev" title="Top">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Introduction"></a>
<div class="header">
<p>
Next: <a href="Commands.html#Commands" accesskey="n" rel="next">Commands</a>, Previous: <a href="index.html#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Introduction-1"></a>
<h2 class="chapter">1 Introduction</h2>

<p>zeptodb is a small collection of relatively tiny command-line tools for
interacting with <em>DBM databases</em>.  For the uninitiated, DBM
databases are flat (non-relational) a databases; in other words, they
are persistent key-value hash tables. Typically they are created via a
library for C, Python, Perl, etc. These tools fill in a gap by providing
useful command-line tools. Some DBM libraries come with really basic
binaries for manipulating the databases, but they are not designed to be
very flexible or useful in the real world.
</p>
<p>These tools may be helpful in scripts, for example, when persistant data
storage is needed but when a full database would be overkill.  DBM
databases offer a constant look-up time for any record in them, as
opposed to, say, searching through a text file, which scales linearly
with the number of lines in the file.  Thus, scripts requiring fast data
look-up would benefit greatly from them.  These commands may also be



useful if, for whatever reason, one would like to manipulate, via the
command-line or scripts, DBM databases created by other programs.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="Tutorial.html#Tutorial" accesskey="1">Tutorial</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Back_002dends.html#Back_002dends" accesskey="2">Back-ends</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>




</body>
</html>


|

|







 







|







 







>
>



<



<










<
|
|




>




|









|
|
|
|
|
|
|
|

|
|
|

|
|
>
>
>
|
|




|








1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Introduction</title>

<meta name="description" content="zeptodb: Introduction">
<meta name="keywords" content="zeptodb: Introduction">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="Tutorial.html#Tutorial" rel="next" title="Tutorial">
<link href="index.html#Top" rel="prev" title="Top">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="Introduction"></a>
<div class="header">
<p>
Next: <a href="Commands.html#Commands" accesskey="n" rel="next">Commands</a>, Previous: <a href="index.html#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Introduction-1"></a>
<h2 class="chapter">1 Introduction</h2>

<p>zeptodb is a small collection of relatively tiny command-line tools
for interacting with <em>DBM databases</em>.  DBM databases are flat
(non-relational) a databases; in other words, they are persistent
key-value hash tables. Typically they are created via a library for C,
Python, Perl, etc. These tools fill in a gap by providing useful
command-line tools. Some DBM libraries come with really basic binaries
for manipulating the databases, but they are not designed to be very
flexible or useful in the real world.
</p>
<p>These tools may be helpful in scripts, for example, when persistant
data storage is needed but when a full database would be overkill.
DBM databases offer a constant look-up time for any record in them, as
opposed to, say, searching through a text file, which scales linearly
with the number of lines in the file.  Thus, scripts requiring fast
data look-up would benefit greatly from them (but note that, of
course, disk access is slower than memory access, so if you really
need the performance and you can fit your table in memory, these are
not the appropriate tools).  These commands may also be useful if, for
whatever reason, one would like to manipulate, via the command-line or
scripts, DBM databases created by other programs.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="Tutorial.html#Tutorial" accesskey="1">Tutorial</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Common-Options.html#Common-Options" accesskey="2">Common Options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>




</body>
</html>

Changes to www/html_node/Tutorial.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
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
...
229
230
231
232
233
234
235
236
237
238
239
240
241
242
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Tutorial</title>

<meta name="description" content="zeptodb: Tutorial">
<meta name="keywords" content="zeptodb: Tutorial">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Introduction.html#Introduction" rel="up" title="Introduction">
<link href="Back_002dends.html#Back_002dends" rel="next" title="Back-ends">
<link href="Introduction.html#Introduction" rel="prev" title="Introduction">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Tutorial"></a>
<div class="header">
<p>
Next: <a href="Back_002dends.html#Back_002dends" accesskey="n" rel="next">Back-ends</a>, Previous: <a href="Introduction.html#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="Introduction.html#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Tutorial-1"></a>
<h3 class="section">1.1 Tutorial</h3>

<p>The zeptodb tools are used to create small databases that are stored to
disk and then to store, fetch and remove records from those databases.
Note that these databases are much simpler than, say, SQL databases.
The databases follow the DBM format as created by the GDBM library
(see <a href="Back_002dends.html#Back_002dends">Back-ends</a>).  Each record in a DBM database consists of a key and
a value.  All keys and values are stored as plain text, regardless of
their formats.
</p>
<p>First, you create a new database with <code>zdbc</code>:
</p>
<div class="example">
<pre class="example">$ zdbc foo.db
</pre></div>

<p>Note: the following two paragraphs contain technical information that is
only necessary if you will be creating large databases with many
records.  If that is not the case, you may safely skip them.
</p>
<p>You can customize the creation of a database in two ways.  The first is
by specifying the number of <em>buckets</em> that comprise the database,
specified via the <samp>-b</samp>/<samp>--num-buckets</samp> option.  A DBM
database can be imagined as a series of buckets.  When a new item is
added, an algorithm determines which bucket it belongs in based on its
key.  Likewise, the same algorithm will be used in determining the
bucket from which to fetch an item.  If each bucket only contains a
maximum of one item, then you are guaranteed to be able to find any item
in the same amount of time as any other item.  On the other hand, if the
number of buckets is smaller than the number of items, then when you go
to fetch an item from a bucket, you might then have to search through
all the items in that bucket to find the one that you want.  This might
slow you down.  On the other hand, if the number of buckets is far
greater than the maximum number of items that will be added, the
algorithm will be wasteful.  Thus it&rsquo;s best to use a number of buckets
that will be slightly greater than the expected maximum number of items.
As a rule of thumb, use about four times more buckets.
</p>
<p>The second option is the size (in bytes) of the memory mapped region to
use, via the <samp>-m</samp>/<samp>--mmap-size</samp> option.  While the
database is stored on the disk as a file, when it is opened by zeptodb,
some or all of that file is mapped in a one-to-one manner with a region
of virtual memory.  Thus, when the program reads from some address in
that region of memory, it reads directly from the corresponding address
in the file.  This will generally speed up reading and writing compared
to traditional file access.  If the memory-mapped region is smaller than
the size of the database, only portions of the file can be mapped at a
time, thus slowing down performance.  Therefore, it is recommended to
use a sufficiently larger value than the size of the database (taking
into account the expected number of records and the size of the data
that is expected to fill the record values).
</p>
<p>Thus, for a big database, you might do:
</p>
<div class="example">
<pre class="example">$ zdbc --num-buckets=10000 --mmap-size=512000000 big.db
</pre></div>

<p>With the database created, you may now store values to it using
<code>zdbs</code>.  <code>zdbs</code> normally takes its input from
<samp>stdin</samp>.  It expects one record per line and for each key/value
pair to be separated by a delimiter character (&rsquo;|&rsquo; by default).  Note
that records are unique: an attempt to store a record with a
pre-existing key will overwrite that record with a new value.
</p>
................................................................................
between multiple databases, storing the keys of one database as values
in another database, allowing quite complex, but always fast, look-ups
within your scripts.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Back_002dends.html#Back_002dends" accesskey="n" rel="next">Back-ends</a>, Previous: <a href="Introduction.html#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="Introduction.html#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>


|

|







 







|













|




>
>



<



<










<
|
|




>




|



|





|
|
|
|
|
|
|







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







|






1
2
3
4
5
6
7
8
9
10
11
12
..
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
...
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Tutorial</title>

<meta name="description" content="zeptodb: Tutorial">
<meta name="keywords" content="zeptodb: Tutorial">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Introduction.html#Introduction" rel="up" title="Introduction">
<link href="Common-Options.html#Common-Options" rel="next" title="Common Options">
<link href="Introduction.html#Introduction" rel="prev" title="Introduction">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="Tutorial"></a>
<div class="header">
<p>
Next: <a href="Common-Options.html#Common-Options" accesskey="n" rel="next">Common Options</a>, Previous: <a href="Introduction.html#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="Introduction.html#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Tutorial-1"></a>
<h3 class="section">1.1 Tutorial</h3>

<p>The zeptodb tools are used to create small databases that are stored
to disk and then to store, fetch and remove records from those
databases.  These databases are much simpler than, say, SQL databases,
so no queries need to be constructed.  The databases follow the DBM
format as created by the GDBM library.  Each record in a DBM database
consists of a key and a value.  All keys and values are stored as
plain text, regardless of their formats.
</p>
<p>First, you create a new database with <code>zdbc</code>:
</p>
<div class="example">
<pre class="example">$ zdbc foo.db
</pre></div>











































<p>With the database created, you may now store values to it using
<code>zdbs</code>.  <code>zdbs</code> normally takes its input from
<samp>stdin</samp>.  It expects one record per line and for each key/value
pair to be separated by a delimiter character (&rsquo;|&rsquo; by default).  Note
that records are unique: an attempt to store a record with a
pre-existing key will overwrite that record with a new value.
</p>
................................................................................
between multiple databases, storing the keys of one database as values
in another database, allowing quite complex, but always fast, look-ups
within your scripts.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Common-Options.html#Common-Options" accesskey="n" rel="next">Common Options</a>, Previous: <a href="Introduction.html#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="Introduction.html#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>

Changes to www/html_node/index.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
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
...
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Top</title>

<meta name="description" content="zeptodb: Top">
<meta name="keywords" content="zeptodb: Top">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
<link href="../dir/index.html" rel="up" title="(dir)">
<link href="Introduction.html#Introduction" rel="next" title="Introduction">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<h1 class="settitle" align="center">zeptodb</h1>



<a name="SEC_Contents"></a>
<h2 class="contents-heading">Table of Contents</h2>

<div class="contents">

<ul class="no-bullet">
  <li><a name="toc-Introduction-1" href="Introduction.html#Introduction">1 Introduction</a>
  <ul class="no-bullet">
    <li><a name="toc-Tutorial-1" href="Tutorial.html#Tutorial">1.1 Tutorial</a></li>
    <li><a name="toc-Back_002dends-1" href="Back_002dends.html#Back_002dends">1.2 Back-ends</a></li>
  </ul></li>
  <li><a name="toc-Commands-1" href="Commands.html#Commands">2 Commands</a>
  <ul class="no-bullet">
    <li><a name="toc-zdbc-1" href="zdbc.html#zdbc">2.1 zdbc</a></li>
    <li><a name="toc-zdbs-1" href="zdbs.html#zdbs">2.2 zdbs</a></li>
    <li><a name="toc-zdbf-1" href="zdbf.html#zdbf">2.3 zdbf</a></li>
    <li><a name="toc-zdbr-1" href="zdbr.html#zdbr">2.4 zdbr</a></li>

  </ul></li>
  <li><a name="toc-Copying-This-Manual-1" href="Copying-This-Manual.html#Copying-This-Manual">Appendix A Copying This Manual</a>
  <ul class="no-bullet">
    <li><a name="toc-GNU-Free-Documentation-License-1" href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">A.1 GNU Free Documentation License</a></li>
  </ul></li>
  <li><a name="toc-Index-1" href="Index.html#Index">Index</a></li>
</ul>
</div>


<a name="Top"></a>
<div class="header">
<p>
Next: <a href="Introduction.html#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="../dir/index.html" accesskey="p" rel="prev">(dir)</a>, Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zeptodb"></a>
<h1 class="top">zeptodb</h1>

<p>This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).
</p>
<p>Copyright &copy; 2013  Brandon Invergo
</p>
<blockquote>
<p>Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled &ldquo;GNU
................................................................................
<tr><td align="left" valign="top">&bull; <a href="Commands.html#Commands" accesskey="2">Commands</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="3">Copying This Manual</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Index.html#Index" accesskey="4">Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

</pre></th></tr><tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> &mdash; The Detailed Node Listing &mdash;

Introduction

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Tutorial.html#Tutorial" accesskey="5">Tutorial</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Back_002dends.html#Back_002dends" accesskey="6">Back-ends</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

Commands

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="zdbc.html#zdbc" accesskey="7">zdbc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbs.html#zdbs" accesskey="8">zdbs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbf.html#zdbf" accesskey="9">zdbf</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbr.html#zdbr">zdbr</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>


<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

Copying This Manual

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">GNU Free Documentation License</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">License for copying this manual.
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

</pre></th></tr></table>

<hr>
<div class="header">
<p>
Next: <a href="Introduction.html#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="../dir/index.html" accesskey="p" rel="prev">(dir)</a>, Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>


|

|







 







|












|




>
>



<



<










<
|
|




>




|













|







>













|





|

|







 







>






|


>










>
>

>





>





|






1
2
3
4
5
6
7
8
9
10
11
12
..
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
...
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: Top</title>

<meta name="description" content="zeptodb: Top">
<meta name="keywords" content="zeptodb: Top">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
<link href="/manual" rel="up" title="(dir)">
<link href="Introduction.html#Introduction" rel="next" title="Introduction">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<h1 class="settitle" align="center">zeptodb</h1>



<a name="SEC_Contents"></a>
<h2 class="contents-heading">Table of Contents</h2>

<div class="contents">

<ul class="no-bullet">
  <li><a name="toc-Introduction-1" href="Introduction.html#Introduction">1 Introduction</a>
  <ul class="no-bullet">
    <li><a name="toc-Tutorial-1" href="Tutorial.html#Tutorial">1.1 Tutorial</a></li>
    <li><a name="toc-Common-Options-1" href="Common-Options.html#Common-Options">1.2 Common Options</a></li>
  </ul></li>
  <li><a name="toc-Commands-1" href="Commands.html#Commands">2 Commands</a>
  <ul class="no-bullet">
    <li><a name="toc-zdbc-1" href="zdbc.html#zdbc">2.1 zdbc</a></li>
    <li><a name="toc-zdbs-1" href="zdbs.html#zdbs">2.2 zdbs</a></li>
    <li><a name="toc-zdbf-1" href="zdbf.html#zdbf">2.3 zdbf</a></li>
    <li><a name="toc-zdbr-1" href="zdbr.html#zdbr">2.4 zdbr</a></li>
    <li><a name="toc-zdbi-1" href="zdbi.html#zdbi">2.5 zdbi</a></li>
  </ul></li>
  <li><a name="toc-Copying-This-Manual-1" href="Copying-This-Manual.html#Copying-This-Manual">Appendix A Copying This Manual</a>
  <ul class="no-bullet">
    <li><a name="toc-GNU-Free-Documentation-License-1" href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">A.1 GNU Free Documentation License</a></li>
  </ul></li>
  <li><a name="toc-Index-1" href="Index.html#Index">Index</a></li>
</ul>
</div>


<a name="Top"></a>
<div class="header">
<p>
Next: <a href="Introduction.html#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="/manual" accesskey="p" rel="prev">(dir)</a>, Up: <a href="/manual" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zeptodb"></a>
<h1 class="top">zeptodb</h1>

<p>This manual is for zeptodb (version 3.0, updated 12 June 2016).
</p>
<p>Copyright &copy; 2013, 2016  Brandon Invergo
</p>
<blockquote>
<p>Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled &ldquo;GNU
................................................................................
<tr><td align="left" valign="top">&bull; <a href="Commands.html#Commands" accesskey="2">Commands</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="3">Copying This Manual</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Index.html#Index" accesskey="4">Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

</pre></th></tr><tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> &mdash; The Detailed Node Listing &mdash;

Introduction

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Tutorial.html#Tutorial" accesskey="5">Tutorial</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Common-Options.html#Common-Options" accesskey="6">Common Options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

Commands

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="zdbc.html#zdbc" accesskey="7">zdbc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbs.html#zdbs" accesskey="8">zdbs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbf.html#zdbf" accesskey="9">zdbf</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbr.html#zdbr">zdbr</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="zdbi.html#zdbi">zdbi</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

Copying This Manual

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">GNU Free Documentation License</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">License for copying this manual.
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

</pre></th></tr></table>

<hr>
<div class="header">
<p>
Next: <a href="Introduction.html#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="/manual" accesskey="p" rel="prev">(dir)</a>, Up: <a href="/manual" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>

Changes to www/html_node/zdbc.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: zdbc</title>

<meta name="description" content="zeptodb: zdbc">
<meta name="keywords" content="zeptodb: zdbc">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Commands.html#Commands" rel="up" title="Commands">
<link href="zdbs.html#zdbs" rel="next" title="zdbs">
<link href="Commands.html#Commands" rel="prev" title="Commands">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="zdbc"></a>
<div class="header">
<p>
Next: <a href="zdbs.html#zdbs" accesskey="n" rel="next">zdbs</a>, Previous: <a href="Commands.html#Commands" accesskey="p" rel="prev">Commands</a>, Up: <a href="Commands.html#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zdbc-1"></a>
<h3 class="section">2.1 zdbc</h3>

<p><code>zdbc</code> is used to create a new database file.  It accepts two
options, one to choose the number of buckets for the database and the
other to choose the size of the memory-mapped region.  These options
may only be set upon database creation and may not be altered later.
</p>

<p>As a general rule of thumb, you should have around one to four times
as many buckets as entries in the database.  So, if your database will
have 200 entries, you should specify 200 to 800 buckets.  A greater
number of buckets lowers the probability of collisions (two entries
mapping to the same location).
</p>
<p>If possible, you should set the size of the memory-mapped region (in
bytes) to be larger than the expected size of the database or
otherwise as large as possible.
</p>
<dl compact="compact">
<dt><samp>-b, --num-buckets=NUM</samp></dt>
<dd><p>The number of buckets to use
</p>
</dd>
<dt><samp>-m, --mmap-size=NUM</samp></dt>
<dd><p>The size (in bytes) of the memory-mapped region to use
</p>
</dd>
<dt><samp>-v, --verbose</samp></dt>
<dd><p>Print more run-time information
</p>
</dd>
<dt><samp>-?, --help</samp></dt>
<dd><p>Show helpful information
</p>
</dd>
<dt><samp>--usage</samp></dt>
<dd><p>Show shorter helpful information
</p>
</dd>
<dt><samp>-V, --version</samp></dt>
<dd><p>Print the program version

</p></dd>
</dl>




</body>
</html>


|

|







 







|







 







>
>



<



<










<
|
|




>




|









|
|
|
<

>
|
<
<
<
<

<
<
<
<

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
>








1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: zdbc</title>

<meta name="description" content="zeptodb: zdbc">
<meta name="keywords" content="zeptodb: zdbc">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Commands.html#Commands" rel="up" title="Commands">
<link href="zdbs.html#zdbs" rel="next" title="zdbs">
<link href="Commands.html#Commands" rel="prev" title="Commands">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="zdbc"></a>
<div class="header">
<p>
Next: <a href="zdbs.html#zdbs" accesskey="n" rel="next">zdbs</a>, Previous: <a href="Commands.html#Commands" accesskey="p" rel="prev">Commands</a>, Up: <a href="Commands.html#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zdbc-1"></a>
<h3 class="section">2.1 zdbc</h3>

<p><code>zdbc</code> is used to create a new database file.  It accepts all
of the common options.  Running the command on an existing database
will <em>overwrite</em> the existing contents!

</p>
<p>In addition to the database file to be used and the common options,
the <code>zdbc</code> command accepts the following options:




</p>




<dl compact="compact">
















<dt><samp>-s, --sync</samp></dt>





<dd><p>Automatically synchronize all database operations to the disk.
</p></dd>
</dl>




</body>
</html>

Changes to www/html_node/zdbf.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: zdbf</title>

<meta name="description" content="zeptodb: zdbf">
<meta name="keywords" content="zeptodb: zdbf">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Commands.html#Commands" rel="up" title="Commands">
<link href="zdbr.html#zdbr" rel="next" title="zdbr">
<link href="zdbs.html#zdbs" rel="prev" title="zdbs">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="zdbf"></a>
<div class="header">
<p>
Next: <a href="zdbr.html#zdbr" accesskey="n" rel="next">zdbr</a>, Previous: <a href="zdbs.html#zdbs" accesskey="p" rel="prev">zdbs</a>, Up: <a href="Commands.html#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zdbf-1"></a>
................................................................................
are read from <samp>stdin</samp> or, optionally, from a text file.  Records
with key values that match the queries will be printed to
<samp>stdout</samp>.  By default, only the corresponding values will be
printed.  However, if a delimiter character is provided, both keys and
values will be printed.  Finally, an option is available to simply
print all records in the database.
</p>
<p>In addition to the database file to be used, the <code>zdbf</code>
command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-a, --all</samp></dt>
<dd><p>Fetch all the records in the database
</p>
</dd>
<dt><samp>-d, --delim=CHAR</samp></dt>
<dd><p>Delimiter character to separate printed keys from values (default
none; only values will be printed)
</p>
</dd>
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read queries from a file instead of from <samp>stdin</samp>
</p>
</dd>
<dt><samp>-v, --verbose</samp></dt>
<dd><p>Print more run-time information
</p>
</dd>
<dt><samp>-?, --help</samp></dt>
<dd><p>Show helpful information
</p>
</dd>
<dt><samp>--usage</samp></dt>
<dd><p>Show shorter helpful information
</p>
</dd>
<dt><samp>-V, --version</samp></dt>
<dd><p>Print the program version
</p></dd>
</dl>




</body>
</html>


|

|







 







|







 







>
>



<



<










<
|
|




>




|







 







|
|



|




|



|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<








1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: zdbf</title>

<meta name="description" content="zeptodb: zdbf">
<meta name="keywords" content="zeptodb: zdbf">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Commands.html#Commands" rel="up" title="Commands">
<link href="zdbr.html#zdbr" rel="next" title="zdbr">
<link href="zdbs.html#zdbs" rel="prev" title="zdbs">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="zdbf"></a>
<div class="header">
<p>
Next: <a href="zdbr.html#zdbr" accesskey="n" rel="next">zdbr</a>, Previous: <a href="zdbs.html#zdbs" accesskey="p" rel="prev">zdbs</a>, Up: <a href="Commands.html#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zdbf-1"></a>
................................................................................
are read from <samp>stdin</samp> or, optionally, from a text file.  Records
with key values that match the queries will be printed to
<samp>stdout</samp>.  By default, only the corresponding values will be
printed.  However, if a delimiter character is provided, both keys and
values will be printed.  Finally, an option is available to simply
print all records in the database.
</p>
<p>In addition to the database file to be used and the common options,
the <code>zdbf</code> command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-a, --all</samp></dt>
<dd><p>Fetch all the records in the database.
</p>
</dd>
<dt><samp>-d, --delim=CHAR</samp></dt>
<dd><p>Delimiter character to separate printed keys from values (default
none; only values will be printed).
</p>
</dd>
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read queries from a file instead of from <samp>stdin</samp>.
















</p></dd>
</dl>




</body>
</html>

Changes to www/html_node/zdbr.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: zdbr</title>

<meta name="description" content="zeptodb: zdbr">
<meta name="keywords" content="zeptodb: zdbr">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Commands.html#Commands" rel="up" title="Commands">
<link href="Copying-This-Manual.html#Copying-This-Manual" rel="next" title="Copying This Manual">
<link href="zdbf.html#zdbf" rel="prev" title="zdbf">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="zdbr"></a>
<div class="header">
<p>
Previous: <a href="zdbf.html#zdbf" accesskey="p" rel="prev">zdbf</a>, Up: <a href="Commands.html#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zdbr-1"></a>
<h3 class="section">2.4 zdbr</h3>

<p><code>zdbr</code> is used to remove records from a database.  The records
to be removed are specified by their keys and are entered via
<samp>stdin</samp> or, optionally, they are read from a text file.  If many
records are removed from the database, some fragmentation can occur.
In this case, it is advisable to reorganize the database, which is
possible via the <samp>--reorganize</samp> option.
</p>
<p>In addition to the database file to be used, the <code>zdbf</code>
command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read queries from a file instead of from <samp>stdin</samp>
</p>
</dd>
<dt><samp>-r, --reorganize</samp></dt>
<dd><p>Reorganize the database
</p>
</dd>
<dt><samp>-v, --verbose</samp></dt>
<dd><p>Print more run-time information
</p>
</dd>
<dt><samp>-?, --help</samp></dt>
<dd><p>Show helpful information
</p>
</dd>
<dt><samp>--usage</samp></dt>
<dd><p>Show shorter helpful information
</p>
</dd>
<dt><samp>-V, --version</samp></dt>
<dd><p>Print the program version
</p></dd>
</dl>




</body>
</html>


|

|







 







|













|




>
>



<



<










<
|
|




>




|



|












|
|



|



|


|
|
<
<
<
<
<
<
<
<
<
<
<
<








1
2
3
4
5
6
7
8
9
10
11
12
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: zdbr</title>

<meta name="description" content="zeptodb: zdbr">
<meta name="keywords" content="zeptodb: zdbr">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index.html#Index" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Commands.html#Commands" rel="up" title="Commands">
<link href="zdbi.html#zdbi" rel="next" title="zdbi">
<link href="zdbf.html#zdbf" rel="prev" title="zdbf">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="zdbr"></a>
<div class="header">
<p>
Next: <a href="zdbi.html#zdbi" accesskey="n" rel="next">zdbi</a>, Previous: <a href="zdbf.html#zdbf" accesskey="p" rel="prev">zdbf</a>, Up: <a href="Commands.html#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zdbr-1"></a>
<h3 class="section">2.4 zdbr</h3>

<p><code>zdbr</code> is used to remove records from a database.  The records
to be removed are specified by their keys and are entered via
<samp>stdin</samp> or, optionally, they are read from a text file.  If many
records are removed from the database, some fragmentation can occur.
In this case, it is advisable to reorganize the database, which is
possible via the <samp>--reorganize</samp> option.
</p>
<p>In addition to the database file to be used and the common options,
the <code>zdbf</code> command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read queries from a file instead of from <samp>stdin</samp>.
</p>
</dd>
<dt><samp>-r, --reorganize</samp></dt>
<dd><p>Reorganize the database.
</p>
</dd>
<dt><samp>-s, --sync</samp></dt>
<dd><p>Automatically synchronize all database operations to the disk.












</p></dd>
</dl>




</body>
</html>

Changes to www/html_node/zdbs.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: zdbs</title>

<meta name="description" content="zeptodb: zdbs">
<meta name="keywords" content="zeptodb: zdbs">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Commands.html#Commands" rel="up" title="Commands">
<link href="zdbf.html#zdbf" rel="next" title="zdbf">
<link href="zdbc.html#zdbc" rel="prev" title="zdbc">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="zdbs"></a>
<div class="header">
<p>
Next: <a href="zdbf.html#zdbf" accesskey="n" rel="next">zdbf</a>, Previous: <a href="zdbc.html#zdbc" accesskey="p" rel="prev">zdbc</a>, Up: <a href="Commands.html#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zdbs-1"></a>
................................................................................

<p><code>zdbs</code> is used to store records in a database file.  Records
are entered via <samp>stdin</samp> or, optionally, they are read from an
input file, with one record per line.  Each record should consist of
one key-value pair.  The values should be separated from the keys by a
common delimiter (&rsquo;|&rsquo; by default), for example &ldquo;key|value&rdquo;.
</p>
<p>In addition to the database file to be used, the <code>zdbs</code>
command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-d, --delim=CHAR</samp></dt>
<dd><p>Delimiter character separating keys from values (default &rsquo;|&rsquo;)
</p>
</dd>
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read new records from a file instead of from <samp>stdin</samp>
</p>
</dd>
<dt><samp>-v, --verbose</samp></dt>
<dd><p>Print more run-time information
</p>
</dd>
<dt><samp>-?, --help</samp></dt>
<dd><p>Show helpful information
</p>
</dd>
<dt><samp>--usage</samp></dt>
<dd><p>Show shorter helpful information
</p>
</dd>
<dt><samp>-V, --version</samp></dt>
<dd><p>Print the program version
</p></dd>
</dl>




</body>
</html>


|

|







 







|







 







>
>



<



<










<
|
|




>




|







 







|
|



|



|


|
|
<
<
<
<
<
<
<
<
<
<
<
<








1
2
3
4
5
6
7
8
9
10
11
12
..
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
..
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
..
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb: zdbs</title>

<meta name="description" content="zeptodb: zdbs">
<meta name="keywords" content="zeptodb: zdbs">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
................................................................................
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Commands.html#Commands" rel="up" title="Commands">
<link href="zdbf.html#zdbf" rel="next" title="zdbf">
<link href="zdbc.html#zdbc" rel="prev" title="zdbc">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<a name="zdbs"></a>
<div class="header">
<p>
Next: <a href="zdbf.html#zdbf" accesskey="n" rel="next">zdbf</a>, Previous: <a href="zdbc.html#zdbc" accesskey="p" rel="prev">zdbc</a>, Up: <a href="Commands.html#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="zdbs-1"></a>
................................................................................

<p><code>zdbs</code> is used to store records in a database file.  Records
are entered via <samp>stdin</samp> or, optionally, they are read from an
input file, with one record per line.  Each record should consist of
one key-value pair.  The values should be separated from the keys by a
common delimiter (&rsquo;|&rsquo; by default), for example &ldquo;key|value&rdquo;.
</p>
<p>In addition to the database file to be used and the common options,
the <code>zdbs</code> command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-d, --delim=CHAR</samp></dt>
<dd><p>Delimiter character separating keys from values (default &rsquo;|&rsquo;).
</p>
</dd>
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read new records from a file instead of from <samp>stdin</samp>.
</p>
</dd>
<dt><samp>-s, --sync</samp></dt>
<dd><p>Automatically synchronize all database operations to the disk.












</p></dd>
</dl>




</body>
</html>

Changes to www/zeptodb.dvi.gz.

cannot compute difference between binary files

Changes to www/zeptodb.html.

1
2
3
4
5
6
7
8
9
10
11
12
..
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
...
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
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
...
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373

374
375
376
377
378
379
380
381
382


383
384
385
386


387
388
389
390
391
392
393
394























395
396
397
398
399
400
401
402
403
404
405
406

407
408
409
410
411
412
413
414
415


416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433

434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466

467
468
469
470
471
472
473
...
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
...
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597

598
599
600
601
602
603
604

605
606
607
608
609



610
611
612
613
614
615
616
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

Copyright (C) 2013  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb</title>

<meta name="description" content="zeptodb">
<meta name="keywords" content="zeptodb">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="#Top" rel="start" title="Top">
<link href="#Index" rel="index" title="Index">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}


blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>



</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<h1 class="settitle" align="center">zeptodb</h1>



<a name="SEC_Contents"></a>
<h2 class="contents-heading">Table of Contents</h2>

<div class="contents">

<ul class="no-bullet">
  <li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a>
  <ul class="no-bullet">
    <li><a name="toc-Tutorial-1" href="#Tutorial">1.1 Tutorial</a></li>
    <li><a name="toc-Back_002dends-1" href="#Back_002dends">1.2 Back-ends</a></li>
  </ul></li>
  <li><a name="toc-Commands-1" href="#Commands">2 Commands</a>
  <ul class="no-bullet">
    <li><a name="toc-zdbc-1" href="#zdbc">2.1 zdbc</a></li>
    <li><a name="toc-zdbs-1" href="#zdbs">2.2 zdbs</a></li>
    <li><a name="toc-zdbf-1" href="#zdbf">2.3 zdbf</a></li>
    <li><a name="toc-zdbr-1" href="#zdbr">2.4 zdbr</a></li>

  </ul></li>
  <li><a name="toc-Copying-This-Manual-1" href="#Copying-This-Manual">Appendix A Copying This Manual</a>
  <ul class="no-bullet">
    <li><a name="toc-GNU-Free-Documentation-License-1" href="#GNU-Free-Documentation-License">A.1 GNU Free Documentation License</a></li>
  </ul></li>
  <li><a name="toc-Index-1" href="#Index">Index</a></li>
</ul>
</div>


<a name="Top"></a>
<div class="header">
<p>
Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="zeptodb"></a>
<h1 class="top">zeptodb</h1>

<p>This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).
</p>
<p>Copyright &copy; 2013  Brandon Invergo
</p>
<blockquote>
<p>Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled &ldquo;GNU
................................................................................
<tr><td align="left" valign="top">&bull; <a href="#Commands" accesskey="2">Commands</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Copying-This-Manual" accesskey="3">Copying This Manual</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Index" accesskey="4">Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

</pre></th></tr><tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> &mdash; The Detailed Node Listing &mdash;

Introduction

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="#Tutorial" accesskey="5">Tutorial</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Back_002dends" accesskey="6">Back-ends</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

Commands

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="#zdbc" accesskey="7">zdbc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbs" accesskey="8">zdbs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbf" accesskey="9">zdbf</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbr">zdbr</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>


<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

Copying This Manual

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="#GNU-Free-Documentation-License">GNU Free Documentation License</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">License for copying this manual.
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

</pre></th></tr></table>

<hr>
<a name="Introduction"></a>
<div class="header">
<p>
Next: <a href="#Commands" accesskey="n" rel="next">Commands</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Introduction-1"></a>
<h2 class="chapter">1 Introduction</h2>

<p>zeptodb is a small collection of relatively tiny command-line tools for
interacting with <em>DBM databases</em>.  For the uninitiated, DBM
databases are flat (non-relational) a databases; in other words, they
are persistent key-value hash tables. Typically they are created via a
library for C, Python, Perl, etc. These tools fill in a gap by providing
useful command-line tools. Some DBM libraries come with really basic
binaries for manipulating the databases, but they are not designed to be
very flexible or useful in the real world.
</p>
<p>These tools may be helpful in scripts, for example, when persistant data
storage is needed but when a full database would be overkill.  DBM
databases offer a constant look-up time for any record in them, as
opposed to, say, searching through a text file, which scales linearly
with the number of lines in the file.  Thus, scripts requiring fast data
look-up would benefit greatly from them.  These commands may also be



useful if, for whatever reason, one would like to manipulate, via the
command-line or scripts, DBM databases created by other programs.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#Tutorial" accesskey="1">Tutorial</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Back_002dends" accesskey="2">Back-ends</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>

<hr>
<a name="Tutorial"></a>
<div class="header">
<p>
Next: <a href="#Back_002dends" accesskey="n" rel="next">Back-ends</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Tutorial-1"></a>
<h3 class="section">1.1 Tutorial</h3>

<p>The zeptodb tools are used to create small databases that are stored to
disk and then to store, fetch and remove records from those databases.
Note that these databases are much simpler than, say, SQL databases.
The databases follow the DBM format as created by the GDBM library
(see <a href="#Back_002dends">Back-ends</a>).  Each record in a DBM database consists of a key and
a value.  All keys and values are stored as plain text, regardless of
their formats.
</p>
<p>First, you create a new database with <code>zdbc</code>:
</p>
<div class="example">
<pre class="example">$ zdbc foo.db
</pre></div>

<p>Note: the following two paragraphs contain technical information that is
only necessary if you will be creating large databases with many
records.  If that is not the case, you may safely skip them.
</p>
<p>You can customize the creation of a database in two ways.  The first is
by specifying the number of <em>buckets</em> that comprise the database,
specified via the <samp>-b</samp>/<samp>--num-buckets</samp> option.  A DBM
database can be imagined as a series of buckets.  When a new item is
added, an algorithm determines which bucket it belongs in based on its
key.  Likewise, the same algorithm will be used in determining the
bucket from which to fetch an item.  If each bucket only contains a
maximum of one item, then you are guaranteed to be able to find any item
in the same amount of time as any other item.  On the other hand, if the
number of buckets is smaller than the number of items, then when you go
to fetch an item from a bucket, you might then have to search through
all the items in that bucket to find the one that you want.  This might
slow you down.  On the other hand, if the number of buckets is far
greater than the maximum number of items that will be added, the
algorithm will be wasteful.  Thus it&rsquo;s best to use a number of buckets
that will be slightly greater than the expected maximum number of items.
As a rule of thumb, use about four times more buckets.
</p>
<p>The second option is the size (in bytes) of the memory mapped region to
use, via the <samp>-m</samp>/<samp>--mmap-size</samp> option.  While the
database is stored on the disk as a file, when it is opened by zeptodb,
some or all of that file is mapped in a one-to-one manner with a region
of virtual memory.  Thus, when the program reads from some address in
that region of memory, it reads directly from the corresponding address
in the file.  This will generally speed up reading and writing compared
to traditional file access.  If the memory-mapped region is smaller than
the size of the database, only portions of the file can be mapped at a
time, thus slowing down performance.  Therefore, it is recommended to
use a sufficiently larger value than the size of the database (taking
into account the expected number of records and the size of the data
that is expected to fill the record values).
</p>
<p>Thus, for a big database, you might do:
</p>
<div class="example">
<pre class="example">$ zdbc --num-buckets=10000 --mmap-size=512000000 big.db
</pre></div>

<p>With the database created, you may now store values to it using
<code>zdbs</code>.  <code>zdbs</code> normally takes its input from
<samp>stdin</samp>.  It expects one record per line and for each key/value
pair to be separated by a delimiter character (&rsquo;|&rsquo; by default).  Note
that records are unique: an attempt to store a record with a
pre-existing key will overwrite that record with a new value.
</p>
................................................................................
scripts.  For example, one script might save data to a database while
another script reads from that data.  You can even build up relations
between multiple databases, storing the keys of one database as values
in another database, allowing quite complex, but always fast, look-ups
within your scripts.
</p>
<hr>
<a name="Back_002dends"></a>
<div class="header">
<p>
Previous: <a href="#Tutorial" accesskey="p" rel="prev">Tutorial</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Back_002dends-1"></a>
<h3 class="section">1.2 Back-ends</h3>

<p>By default, zeptodb uses the <a href="http://www.gnu.org/software/gdb">GNU dbm</a> (GDBM) library to create and manipulate the DBM databases.
Alternatively, you may choose to use the

<a href="http://fallabs.com/kyotocabinet/">Kyoto Cabinet</a> library
instead.  This is specified by passing the
<samp>--with-kyotocabinet</samp> option to the <samp>configure</samp> script
before compiling zeptodb.
</p>
<p>Note that databases created with these two different back-ends are
<em>not</em> compatible, thus databases created with Kyoto Cabinet can
only be accessed by zeptodb if it has been compiled with support for
the library.


</p>
<p>Databases created with Kyoto Cabinet are required to have the
<samp>.kch</samp> file extension.  By convention, databases created with
GDBM should have the <samp>.db</samp> file extension.


</p>
<p>For most purposes, databases created with GDBM should be sufficient.
For particularly large data sets, however, Kyoto Cabinet is
preferred, since it can add values more quickly and has a much larger
upper limit on the database size.  On the other hand, Kyoto Cabinet is
not as widely available in GNU/Linux distributions as GDBM so it often
must be installed manually.
</p>























<hr>
<a name="Commands"></a>
<div class="header">
<p>
Next: <a href="#Copying-This-Manual" accesskey="n" rel="next">Copying This Manual</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Commands-1"></a>
<h2 class="chapter">2 Commands</h2>

<p>Three commands are provided with zeptodb: <code>zdbc</code>, for creating
databases, <code>zdbs</code> for storing records in them, <code>zdbf</code>,
for fetching records, and <code>zdbr</code>, for removing records.

</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#zdbc" accesskey="1">zdbc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbs" accesskey="2">zdbs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbf" accesskey="3">zdbf</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbr" accesskey="4">zdbr</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">


</td></tr>
</table>


<hr>
<a name="zdbc"></a>
<div class="header">
<p>
Next: <a href="#zdbs" accesskey="n" rel="next">zdbs</a>, Previous: <a href="#Commands" accesskey="p" rel="prev">Commands</a>, Up: <a href="#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="zdbc-1"></a>
<h3 class="section">2.1 zdbc</h3>

<p><code>zdbc</code> is used to create a new database file.  It accepts two
options, one to choose the number of buckets for the database and the
other to choose the size of the memory-mapped region.  These options
may only be set upon database creation and may not be altered later.
</p>

<p>As a general rule of thumb, you should have around one to four times
as many buckets as entries in the database.  So, if your database will
have 200 entries, you should specify 200 to 800 buckets.  A greater
number of buckets lowers the probability of collisions (two entries
mapping to the same location).
</p>
<p>If possible, you should set the size of the memory-mapped region (in
bytes) to be larger than the expected size of the database or
otherwise as large as possible.
</p>
<dl compact="compact">
<dt><samp>-b, --num-buckets=NUM</samp></dt>
<dd><p>The number of buckets to use
</p>
</dd>
<dt><samp>-m, --mmap-size=NUM</samp></dt>
<dd><p>The size (in bytes) of the memory-mapped region to use
</p>
</dd>
<dt><samp>-v, --verbose</samp></dt>
<dd><p>Print more run-time information
</p>
</dd>
<dt><samp>-?, --help</samp></dt>
<dd><p>Show helpful information
</p>
</dd>
<dt><samp>--usage</samp></dt>
<dd><p>Show shorter helpful information
</p>
</dd>
<dt><samp>-V, --version</samp></dt>
<dd><p>Print the program version

</p></dd>
</dl>

<hr>
<a name="zdbs"></a>
<div class="header">
<p>
................................................................................

<p><code>zdbs</code> is used to store records in a database file.  Records
are entered via <samp>stdin</samp> or, optionally, they are read from an
input file, with one record per line.  Each record should consist of
one key-value pair.  The values should be separated from the keys by a
common delimiter (&rsquo;|&rsquo; by default), for example &ldquo;key|value&rdquo;.
</p>
<p>In addition to the database file to be used, the <code>zdbs</code>
command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-d, --delim=CHAR</samp></dt>
<dd><p>Delimiter character separating keys from values (default &rsquo;|&rsquo;)
</p>
</dd>
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read new records from a file instead of from <samp>stdin</samp>
</p>
</dd>
<dt><samp>-v, --verbose</samp></dt>
<dd><p>Print more run-time information
</p>
</dd>
<dt><samp>-?, --help</samp></dt>
<dd><p>Show helpful information
</p>
</dd>
<dt><samp>--usage</samp></dt>
<dd><p>Show shorter helpful information
</p>
</dd>
<dt><samp>-V, --version</samp></dt>
<dd><p>Print the program version
</p></dd>
</dl>

<hr>
<a name="zdbf"></a>
<div class="header">
<p>
................................................................................
are read from <samp>stdin</samp> or, optionally, from a text file.  Records
with key values that match the queries will be printed to
<samp>stdout</samp>.  By default, only the corresponding values will be
printed.  However, if a delimiter character is provided, both keys and
values will be printed.  Finally, an option is available to simply
print all records in the database.
</p>
<p>In addition to the database file to be used, the <code>zdbf</code>
command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-a, --all</samp></dt>
<dd><p>Fetch all the records in the database
</p>
</dd>
<dt><samp>-d, --delim=CHAR</samp></dt>
<dd><p>Delimiter character to separate printed keys from values (default
none; only values will be printed)
</p>
</dd>
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read queries from a file instead of from <samp>stdin</samp>
</p>
</dd>
<dt><samp>-v, --verbose</samp></dt>
<dd><p>Print more run-time information
</p>
</dd>
<dt><samp>-?, --help</samp></dt>
<dd><p>Show helpful information
</p>
</dd>
<dt><samp>--usage</samp></dt>
<dd><p>Show shorter helpful information
</p>
</dd>
<dt><samp>-V, --version</samp></dt>
<dd><p>Print the program version
</p></dd>
</dl>

<hr>
<a name="zdbr"></a>
<div class="header">
<p>
Previous: <a href="#zdbf" accesskey="p" rel="prev">zdbf</a>, Up: <a href="#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="zdbr-1"></a>
<h3 class="section">2.4 zdbr</h3>

<p><code>zdbr</code> is used to remove records from a database.  The records
to be removed are specified by their keys and are entered via
<samp>stdin</samp> or, optionally, they are read from a text file.  If many
records are removed from the database, some fragmentation can occur.
In this case, it is advisable to reorganize the database, which is
possible via the <samp>--reorganize</samp> option.
</p>
<p>In addition to the database file to be used, the <code>zdbf</code>
command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read queries from a file instead of from <samp>stdin</samp>
</p>
</dd>
<dt><samp>-r, --reorganize</samp></dt>
<dd><p>Reorganize the database
</p>
</dd>
<dt><samp>-v, --verbose</samp></dt>
<dd><p>Print more run-time information
</p>
</dd>
<dt><samp>-?, --help</samp></dt>

<dd><p>Show helpful information
</p>
</dd>
<dt><samp>--usage</samp></dt>
<dd><p>Show shorter helpful information
</p>
</dd>

<dt><samp>-V, --version</samp></dt>
<dd><p>Print the program version
</p></dd>
</dl>




<hr>
<a name="Copying-This-Manual"></a>
<div class="header">
<p>
Next: <a href="#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="#Commands" accesskey="p" rel="prev">Commands</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Copying-This-Manual-1"></a>


|

|







 







|












|



>
>



<



<










<
|
|




>




|













|







>













|




|

|







 







>






|


>










>
>

>





>











|
|
|
|
|
|
|
|

|
|
|

|
|
>
>
>
|
|




|







|




|
|
|
|
|
|
|







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







|




|
|

|
<
>
|
|
|
|

|
|
|
|
>
>

<
<
|
>
>

<
<
|
|
|
<

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>









|

|
>









>
>













|
|
|
<

>
|
<
<
<
<

<
<
<
<

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
>







 







|
|



|



|


|
|
<
<
<
<
<
<
<
<
<
<
<
<







 







|
|



|




|



|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







|











|
|



|



|


|
|
|
|
<
>
|
|
|
|
|
<
|
>
|
<
<
<

>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
..
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
...
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
225
226
227
228
229
230
231
232










































233
234
235
236
237
238
239
...
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340

341
342
343
344
345
346
347
348
349
350
351
352
353


354
355
356
357


358
359
360

361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424

425
426
427




428




429
















430





431
432
433
434
435
436
437
438
...
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463












464
465
466
467
468
469
470
...
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
















499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533

534
535
536
537
538
539

540
541
542



543
544
545
546
547
548
549
550
551
552
553
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for zeptodb (version 3.0, updated 12 June 2016).

Copyright (C) 2013, 2016  Brandon Invergo

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
................................................................................
A copy of the license is also available from the Free Software
Foundation Web site at http://www.gnu.org/licenses/fdl.html.


The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
 -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>zeptodb</title>

<meta name="description" content="zeptodb">
<meta name="keywords" content="zeptodb">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="#Top" rel="start" title="Top">
<link href="#Index" rel="index" title="Index">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
<link href="/manual" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}

div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}

div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}

span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">


</head>

<body lang="en">
<h1 class="settitle" align="center">zeptodb</h1>



<a name="SEC_Contents"></a>
<h2 class="contents-heading">Table of Contents</h2>

<div class="contents">

<ul class="no-bullet">
  <li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a>
  <ul class="no-bullet">
    <li><a name="toc-Tutorial-1" href="#Tutorial">1.1 Tutorial</a></li>
    <li><a name="toc-Common-Options-1" href="#Common-Options">1.2 Common Options</a></li>
  </ul></li>
  <li><a name="toc-Commands-1" href="#Commands">2 Commands</a>
  <ul class="no-bullet">
    <li><a name="toc-zdbc-1" href="#zdbc">2.1 zdbc</a></li>
    <li><a name="toc-zdbs-1" href="#zdbs">2.2 zdbs</a></li>
    <li><a name="toc-zdbf-1" href="#zdbf">2.3 zdbf</a></li>
    <li><a name="toc-zdbr-1" href="#zdbr">2.4 zdbr</a></li>
    <li><a name="toc-zdbi-1" href="#zdbi">2.5 zdbi</a></li>
  </ul></li>
  <li><a name="toc-Copying-This-Manual-1" href="#Copying-This-Manual">Appendix A Copying This Manual</a>
  <ul class="no-bullet">
    <li><a name="toc-GNU-Free-Documentation-License-1" href="#GNU-Free-Documentation-License">A.1 GNU Free Documentation License</a></li>
  </ul></li>
  <li><a name="toc-Index-1" href="#Index">Index</a></li>
</ul>
</div>


<a name="Top"></a>
<div class="header">
<p>
Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="/manual" accesskey="p" rel="prev">(dir)</a>, Up: <a href="/manual" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="zeptodb"></a>
<h1 class="top">zeptodb</h1>

<p>This manual is for zeptodb (version 3.0, updated 12 June 2016).
</p>
<p>Copyright &copy; 2013, 2016  Brandon Invergo
</p>
<blockquote>
<p>Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled &ldquo;GNU
................................................................................
<tr><td align="left" valign="top">&bull; <a href="#Commands" accesskey="2">Commands</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Copying-This-Manual" accesskey="3">Copying This Manual</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Index" accesskey="4">Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

</pre></th></tr><tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> &mdash; The Detailed Node Listing &mdash;

Introduction

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="#Tutorial" accesskey="5">Tutorial</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Common-Options" accesskey="6">Common Options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

Commands

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="#zdbc" accesskey="7">zdbc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbs" accesskey="8">zdbs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbf" accesskey="9">zdbf</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbr">zdbr</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbi">zdbi</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

Copying This Manual

</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="#GNU-Free-Documentation-License">GNU Free Documentation License</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">License for copying this manual.
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">

</pre></th></tr></table>

<hr>
<a name="Introduction"></a>
<div class="header">
<p>
Next: <a href="#Commands" accesskey="n" rel="next">Commands</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Introduction-1"></a>
<h2 class="chapter">1 Introduction</h2>

<p>zeptodb is a small collection of relatively tiny command-line tools
for interacting with <em>DBM databases</em>.  DBM databases are flat
(non-relational) a databases; in other words, they are persistent
key-value hash tables. Typically they are created via a library for C,
Python, Perl, etc. These tools fill in a gap by providing useful
command-line tools. Some DBM libraries come with really basic binaries
for manipulating the databases, but they are not designed to be very
flexible or useful in the real world.
</p>
<p>These tools may be helpful in scripts, for example, when persistant
data storage is needed but when a full database would be overkill.
DBM databases offer a constant look-up time for any record in them, as
opposed to, say, searching through a text file, which scales linearly
with the number of lines in the file.  Thus, scripts requiring fast
data look-up would benefit greatly from them (but note that, of
course, disk access is slower than memory access, so if you really
need the performance and you can fit your table in memory, these are
not the appropriate tools).  These commands may also be useful if, for
whatever reason, one would like to manipulate, via the command-line or
scripts, DBM databases created by other programs.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#Tutorial" accesskey="1">Tutorial</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Common-Options" accesskey="2">Common Options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>

<hr>
<a name="Tutorial"></a>
<div class="header">
<p>
Next: <a href="#Common-Options" accesskey="n" rel="next">Common Options</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Tutorial-1"></a>
<h3 class="section">1.1 Tutorial</h3>

<p>The zeptodb tools are used to create small databases that are stored
to disk and then to store, fetch and remove records from those
databases.  These databases are much simpler than, say, SQL databases,
so no queries need to be constructed.  The databases follow the DBM
format as created by the GDBM library.  Each record in a DBM database
consists of a key and a value.  All keys and values are stored as
plain text, regardless of their formats.
</p>
<p>First, you create a new database with <code>zdbc</code>:
</p>
<div class="example">
<pre class="example">$ zdbc foo.db
</pre></div>











































<p>With the database created, you may now store values to it using
<code>zdbs</code>.  <code>zdbs</code> normally takes its input from
<samp>stdin</samp>.  It expects one record per line and for each key/value
pair to be separated by a delimiter character (&rsquo;|&rsquo; by default).  Note
that records are unique: an attempt to store a record with a
pre-existing key will overwrite that record with a new value.
</p>
................................................................................
scripts.  For example, one script might save data to a database while
another script reads from that data.  You can even build up relations
between multiple databases, storing the keys of one database as values
in another database, allowing quite complex, but always fast, look-ups
within your scripts.
</p>
<hr>
<a name="Common-Options"></a>
<div class="header">
<p>
Previous: <a href="#Tutorial" accesskey="p" rel="prev">Tutorial</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Common-Options-1"></a>
<h3 class="section">1.2 Common Options</h3>

<p>The following options are available for all zeptodb commands.

</p>
<dl compact="compact">
<dt><samp>-b, --block-size=NUM</samp></dt>
<dd><p>The block size (in bytes) to be used, representing the size of a
transfer from disk to memory.  The default value is 512.
</p>
</dd>
<dt><samp>-m, --mmap-size=NUM</samp></dt>
<dd><p>The size (in bytes) of the memory-mapped region to be used.  With a
value greater than zero, a memory map of the database will be created;
thus the size specified must be large enough to fit the entire
database.
</p>


</dd>
<dt><samp>-c, --cache-size=NUM</samp></dt>
<dd><p>The size (in bytes) of the bucket cache size to be used.
</p>


</dd>
<dt><samp>-l, --no-lock</samp></dt>
<dd><p>Do not perform file locking an the database.

</p>
</dd>
<dt><samp>-n, --no-mmap</samp></dt>
<dd><p>Do not create a memory map of the database.
</p>
</dd>
<dt><samp>-v, --verbose</samp></dt>
<dd><p>Print more run-time information.
</p>
</dd>
<dt><samp>-?, --help</samp></dt>
<dd><p>Show helpful information.
</p>
</dd>
<dt><samp>--usage</samp></dt>
<dd><p>Show shorter helpful information.
</p>
</dd>
<dt><samp>-V, --version</samp></dt>
<dd><p>Print the program version.
</p></dd>
</dl>


<hr>
<a name="Commands"></a>
<div class="header">
<p>
Next: <a href="#Copying-This-Manual" accesskey="n" rel="next">Copying This Manual</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Commands-1"></a>
<h2 class="chapter">2 Commands</h2>

<p>Five commands are provided with zeptodb: <code>zdbc</code>, for creating
databases, <code>zdbs</code> for storing records in them, <code>zdbf</code>,
for fetching records, <code>zdbr</code>, for removing records, and
<code>zdbi</code> for displaying information about a database.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#zdbc" accesskey="1">zdbc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbs" accesskey="2">zdbs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbf" accesskey="3">zdbf</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbr" accesskey="4">zdbr</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#zdbi" accesskey="5">zdbi</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>


<hr>
<a name="zdbc"></a>
<div class="header">
<p>
Next: <a href="#zdbs" accesskey="n" rel="next">zdbs</a>, Previous: <a href="#Commands" accesskey="p" rel="prev">Commands</a>, Up: <a href="#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="zdbc-1"></a>
<h3 class="section">2.1 zdbc</h3>

<p><code>zdbc</code> is used to create a new database file.  It accepts all
of the common options.  Running the command on an existing database
will <em>overwrite</em> the existing contents!

</p>
<p>In addition to the database file to be used and the common options,
the <code>zdbc</code> command accepts the following options:




</p>




<dl compact="compact">
















<dt><samp>-s, --sync</samp></dt>





<dd><p>Automatically synchronize all database operations to the disk.
</p></dd>
</dl>

<hr>
<a name="zdbs"></a>
<div class="header">
<p>
................................................................................

<p><code>zdbs</code> is used to store records in a database file.  Records
are entered via <samp>stdin</samp> or, optionally, they are read from an
input file, with one record per line.  Each record should consist of
one key-value pair.  The values should be separated from the keys by a
common delimiter (&rsquo;|&rsquo; by default), for example &ldquo;key|value&rdquo;.
</p>
<p>In addition to the database file to be used and the common options,
the <code>zdbs</code> command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-d, --delim=CHAR</samp></dt>
<dd><p>Delimiter character separating keys from values (default &rsquo;|&rsquo;).
</p>
</dd>
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read new records from a file instead of from <samp>stdin</samp>.
</p>
</dd>
<dt><samp>-s, --sync</samp></dt>
<dd><p>Automatically synchronize all database operations to the disk.












</p></dd>
</dl>

<hr>
<a name="zdbf"></a>
<div class="header">
<p>
................................................................................
are read from <samp>stdin</samp> or, optionally, from a text file.  Records
with key values that match the queries will be printed to
<samp>stdout</samp>.  By default, only the corresponding values will be
printed.  However, if a delimiter character is provided, both keys and
values will be printed.  Finally, an option is available to simply
print all records in the database.
</p>
<p>In addition to the database file to be used and the common options,
the <code>zdbf</code> command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-a, --all</samp></dt>
<dd><p>Fetch all the records in the database.
</p>
</dd>
<dt><samp>-d, --delim=CHAR</samp></dt>
<dd><p>Delimiter character to separate printed keys from values (default
none; only values will be printed).
</p>
</dd>
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read queries from a file instead of from <samp>stdin</samp>.
















</p></dd>
</dl>

<hr>
<a name="zdbr"></a>
<div class="header">
<p>
Next: <a href="#zdbi" accesskey="n" rel="next">zdbi</a>, Previous: <a href="#zdbf" accesskey="p" rel="prev">zdbf</a>, Up: <a href="#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="zdbr-1"></a>
<h3 class="section">2.4 zdbr</h3>

<p><code>zdbr</code> is used to remove records from a database.  The records
to be removed are specified by their keys and are entered via
<samp>stdin</samp> or, optionally, they are read from a text file.  If many
records are removed from the database, some fragmentation can occur.
In this case, it is advisable to reorganize the database, which is
possible via the <samp>--reorganize</samp> option.
</p>
<p>In addition to the database file to be used and the common options,
the <code>zdbf</code> command accepts the following options:
</p>
<dl compact="compact">
<dt><samp>-i, --input=FILE</samp></dt>
<dd><p>Read queries from a file instead of from <samp>stdin</samp>.
</p>
</dd>
<dt><samp>-r, --reorganize</samp></dt>
<dd><p>Reorganize the database.
</p>
</dd>
<dt><samp>-s, --sync</samp></dt>
<dd><p>Automatically synchronize all database operations to the disk.
</p></dd>
</dl>


<hr>
<a name="zdbi"></a>
<div class="header">
<p>
Previous: <a href="#zdbr" accesskey="p" rel="prev">zdbr</a>, Up: <a href="#Commands" accesskey="u" rel="up">Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>

</div>
<a name="zdbi-1"></a>
<h3 class="section">2.5 zdbi</h3>




<p><code>zdbi</code> prints out information on a database file.  It accepts
the common options.
</p>
<hr>
<a name="Copying-This-Manual"></a>
<div class="header">
<p>
Next: <a href="#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="#Commands" accesskey="p" rel="prev">Commands</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Copying-This-Manual-1"></a>

Changes to www/zeptodb.html.gz.

cannot compute difference between binary files

Changes to www/zeptodb.html_node.tar.gz.

cannot compute difference between binary files

Changes to www/zeptodb.info.tar.gz.

cannot compute difference between binary files

Changes to www/zeptodb.pdf.

cannot compute difference between binary files

Changes to www/zeptodb.texi.tar.gz.

cannot compute difference between binary files

Changes to www/zeptodb.txt.

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
..
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
...
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
225
226
227
228

229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255


256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345

346
347
348
349
350
351
352
353
354
355
356
357
358
zeptodb
1 Introduction
  1.1 Tutorial
  1.2 Back-ends
2 Commands
  2.1 zdbc
  2.2 zdbs
  2.3 zdbf
  2.4 zdbr

Appendix A Copying This Manual
  A.1 GNU Free Documentation License
Index
zeptodb
*******

This manual is for zeptodb (version 2.0.2b, updated 17 November 2013).

   Copyright (C) 2013 Brandon Invergo

     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.3 or any later version published by the Free Software
     Foundation; with no Invariant Sections, no Front-Cover Texts, and
     no Back-Cover Texts.  A copy of the license is included in the
     section entitled "GNU Free Documentation License".
................................................................................

   The document was typeset with GNU Texinfo (http://www.texinfo.org/).

1 Introduction
**************

zeptodb is a small collection of relatively tiny command-line tools for
interacting with "DBM databases".  For the uninitiated, DBM databases
are flat (non-relational) a databases; in other words, they are
persistent key-value hash tables.  Typically they are created via a
library for C, Python, Perl, etc.  These tools fill in a gap by
providing useful command-line tools.  Some DBM libraries come with
really basic binaries for manipulating the databases, but they are not
designed to be very flexible or useful in the real world.

   These tools may be helpful in scripts, for example, when persistant
data storage is needed but when a full database would be overkill.  DBM
databases offer a constant look-up time for any record in them, as
opposed to, say, searching through a text file, which scales linearly
with the number of lines in the file.  Thus, scripts requiring fast data
look-up would benefit greatly from them.  These commands may also be



useful if, for whatever reason, one would like to manipulate, via the
command-line or scripts, DBM databases created by other programs.

1.1 Tutorial
============

The zeptodb tools are used to create small databases that are stored to
disk and then to store, fetch and remove records from those databases.
Note that these databases are much simpler than, say, SQL databases.
The databases follow the DBM format as created by the GDBM library
(*note Back-ends::).  Each record in a DBM database consists of a key
and a value.  All keys and values are stored as plain text, regardless
of their formats.

   First, you create a new database with 'zdbc':

     $ zdbc foo.db

   Note: the following two paragraphs contain technical information that
is only necessary if you will be creating large databases with many
records.  If that is not the case, you may safely skip them.

   You can customize the creation of a database in two ways.  The first
is by specifying the number of "buckets" that comprise the database,
specified via the '-b'/'--num-buckets' option.  A DBM database can be
imagined as a series of buckets.  When a new item is added, an algorithm
determines which bucket it belongs in based on its key.  Likewise, the
same algorithm will be used in determining the bucket from which to
fetch an item.  If each bucket only contains a maximum of one item, then
you are guaranteed to be able to find any item in the same amount of
time as any other item.  On the other hand, if the number of buckets is
smaller than the number of items, then when you go to fetch an item from
a bucket, you might then have to search through all the items in that
bucket to find the one that you want.  This might slow you down.  On the
other hand, if the number of buckets is far greater than the maximum
number of items that will be added, the algorithm will be wasteful.
Thus it's best to use a number of buckets that will be slightly greater
than the expected maximum number of items.  As a rule of thumb, use
about four times more buckets.

   The second option is the size (in bytes) of the memory mapped region
to use, via the '-m'/'--mmap-size' option.  While the database is stored
on the disk as a file, when it is opened by zeptodb, some or all of that
file is mapped in a one-to-one manner with a region of virtual memory.
Thus, when the program reads from some address in that region of memory,
it reads directly from the corresponding address in the file.  This will
generally speed up reading and writing compared to traditional file
access.  If the memory-mapped region is smaller than the size of the
database, only portions of the file can be mapped at a time, thus
slowing down performance.  Therefore, it is recommended to use a
sufficiently larger value than the size of the database (taking into
account the expected number of records and the size of the data that is
expected to fill the record values).

   Thus, for a big database, you might do:

     $ zdbc --num-buckets=10000 --mmap-size=512000000 big.db

   With the database created, you may now store values to it using
'zdbs'.  'zdbs' normally takes its input from 'stdin'.  It expects one
record per line and for each key/value pair to be separated by a
delimiter character ('|' by default).  Note that records are unique: an
attempt to store a record with a pre-existing key will overwrite that
record with a new value.

................................................................................
programs from the command-line, you are more likely to use them in
scripts.  For example, one script might save data to a database while
another script reads from that data.  You can even build up relations
between multiple databases, storing the keys of one database as values
in another database, allowing quite complex, but always fast, look-ups
within your scripts.

1.2 Back-ends
=============

By default, zeptodb uses the GNU dbm (http://www.gnu.org/software/gdb)
(GDBM) library to create and manipulate the DBM databases.

Alternatively, you may choose to use the Kyoto Cabinet
(http://fallabs.com/kyotocabinet/) library instead.  This is specified
by passing the '--with-kyotocabinet' option to the 'configure' script
before compiling zeptodb.


   Note that databases created with these two different back-ends are
_not_ compatible, thus databases created with Kyoto Cabinet can only be
accessed by zeptodb if it has been compiled with support for the
library.

   Databases created with Kyoto Cabinet are required to have the '.kch'
file extension.  By convention, databases created with GDBM should have
the '.db' file extension.


   For most purposes, databases created with GDBM should be sufficient.
For particularly large data sets, however, Kyoto Cabinet is preferred,

since it can add values more quickly and has a much larger upper limit
on the database size.  On the other hand, Kyoto Cabinet is not as widely
available in GNU/Linux distributions as GDBM so it often must be

installed manually.











2 Commands
**********

Three commands are provided with zeptodb: 'zdbc', for creating
databases, 'zdbs' for storing records in them, 'zdbf', for fetching
records, and 'zdbr', for removing records.


2.1 zdbc
========

'zdbc' is used to create a new database file.  It accepts two options,
one to choose the number of buckets for the database and the other to
choose the size of the memory-mapped region.  These options may only be
set upon database creation and may not be altered later.


   As a general rule of thumb, you should have around one to four times
as many buckets as entries in the database.  So, if your database will
have 200 entries, you should specify 200 to 800 buckets.  A greater
number of buckets lowers the probability of collisions (two entries
mapping to the same location).

   If possible, you should set the size of the memory-mapped region (in
bytes) to be larger than the expected size of the database or otherwise
as large as possible.

'-b, --num-buckets=NUM'
     The number of buckets to use

'-m, --mmap-size=NUM'
     The size (in bytes) of the memory-mapped region to use

'-v, --verbose'
     Print more run-time information

'-?, --help'
     Show helpful information

'--usage'
     Show shorter helpful information

'-V, --version'
     Print the program version



2.2 zdbs
========

'zdbs' is used to store records in a database file.  Records are entered
via 'stdin' or, optionally, they are read from an input file, with one
record per line.  Each record should consist of one key-value pair.  The
values should be separated from the keys by a common delimiter ('|' by
default), for example "key|value".

   In addition to the database file to be used, the 'zdbs' command
accepts the following options:

'-d, --delim=CHAR'
     Delimiter character separating keys from values (default '|')

'-i, --input=FILE'
     Read new records from a file instead of from 'stdin'

'-v, --verbose'
     Print more run-time information

'-?, --help'
     Show helpful information

'--usage'
     Show shorter helpful information

'-V, --version'
     Print the program version

2.3 zdbf
========

'zdbf' is used to fetch records from a database file.  Queries are read
from 'stdin' or, optionally, from a text file.  Records with key values
that match the queries will be printed to 'stdout'.  By default, only
the corresponding values will be printed.  However, if a delimiter
character is provided, both keys and values will be printed.  Finally,
an option is available to simply print all records in the database.

   In addition to the database file to be used, the 'zdbf' command
accepts the following options:

'-a, --all'
     Fetch all the records in the database

'-d, --delim=CHAR'
     Delimiter character to separate printed keys from values (default
     none; only values will be printed)

'-i, --input=FILE'
     Read queries from a file instead of from 'stdin'

'-v, --verbose'
     Print more run-time information

'-?, --help'
     Show helpful information

'--usage'
     Show shorter helpful information

'-V, --version'
     Print the program version

2.4 zdbr
========

'zdbr' is used to remove records from a database.  The records to be
removed are specified by their keys and are entered via 'stdin' or,
optionally, they are read from a text file.  If many records are removed
from the database, some fragmentation can occur.  In this case, it is
advisable to reorganize the database, which is possible via the
'--reorganize' option.

   In addition to the database file to be used, the 'zdbf' command
accepts the following options:

'-i, --input=FILE'
     Read queries from a file instead of from 'stdin'

'-r, --reorganize'
     Reorganize the database

'-v, --verbose'
     Print more run-time information

'-?, --help'
     Show helpful information


'--usage'
     Show shorter helpful information

'-V, --version'
     Print the program version

Appendix A Copying This Manual
******************************

A.1 GNU Free Documentation License
==================================




|





>






|

|







 







|
|
|
|
|
|
|






|
>
>
>
|
|






|
|
|







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







|
|

|
<
>
|
|
|
<

>
|
|
|
|

|
|
<

>
|
<
>
|
|
<
>
|
>

>
>
>
>
>
>
>
>
>



|
|
|
>




|
|
|
<

>
|
<
<
<
<

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
>
>










|
|


|


|

|
|
<
<
<
<
<
<
<
<
<











|
|


|



|


|
<
<
<
<
<
<
<
<
<
<
<
<











|
|


|


|

|
|

|
<
>

|
|
<
<
<







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
..
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
...
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
225
226
227
228









229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251












252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275

276
277
278
279



280
281
282
283
284
285
286
zeptodb
1 Introduction
  1.1 Tutorial
  1.2 Common Options
2 Commands
  2.1 zdbc
  2.2 zdbs
  2.3 zdbf
  2.4 zdbr
  2.5 zdbi
Appendix A Copying This Manual
  A.1 GNU Free Documentation License
Index
zeptodb
*******

This manual is for zeptodb (version 3.0, updated 12 June 2016).

   Copyright (C) 2013, 2016 Brandon Invergo

     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.3 or any later version published by the Free Software
     Foundation; with no Invariant Sections, no Front-Cover Texts, and
     no Back-Cover Texts.  A copy of the license is included in the
     section entitled "GNU Free Documentation License".
................................................................................

   The document was typeset with GNU Texinfo (http://www.texinfo.org/).

1 Introduction
**************

zeptodb is a small collection of relatively tiny command-line tools for
interacting with "DBM databases".  DBM databases are flat
(non-relational) a databases; in other words, they are persistent
key-value hash tables.  Typically they are created via a library for C,
Python, Perl, etc.  These tools fill in a gap by providing useful
command-line tools.  Some DBM libraries come with really basic binaries
for manipulating the databases, but they are not designed to be very
flexible or useful in the real world.

   These tools may be helpful in scripts, for example, when persistant
data storage is needed but when a full database would be overkill.  DBM
databases offer a constant look-up time for any record in them, as
opposed to, say, searching through a text file, which scales linearly
with the number of lines in the file.  Thus, scripts requiring fast data
look-up would benefit greatly from them (but note that, of course, disk
access is slower than memory access, so if you really need the
performance and you can fit your table in memory, these are not the
appropriate tools).  These commands may also be useful if, for whatever
reason, one would like to manipulate, via the command-line or scripts,
DBM databases created by other programs.

1.1 Tutorial
============

The zeptodb tools are used to create small databases that are stored to
disk and then to store, fetch and remove records from those databases.
These databases are much simpler than, say, SQL databases, so no queries
need to be constructed.  The databases follow the DBM format as created
by the GDBM library.  Each record in a DBM database consists of a key
and a value.  All keys and values are stored as plain text, regardless
of their formats.

   First, you create a new database with 'zdbc':

     $ zdbc foo.db









































   With the database created, you may now store values to it using
'zdbs'.  'zdbs' normally takes its input from 'stdin'.  It expects one
record per line and for each key/value pair to be separated by a
delimiter character ('|' by default).  Note that records are unique: an
attempt to store a record with a pre-existing key will overwrite that
record with a new value.

................................................................................
programs from the command-line, you are more likely to use them in
scripts.  For example, one script might save data to a database while
another script reads from that data.  You can even build up relations
between multiple databases, storing the keys of one database as values
in another database, allowing quite complex, but always fast, look-ups
within your scripts.

1.2 Common Options
==================

The following options are available for all zeptodb commands.


'-b, --block-size=NUM'
     The block size (in bytes) to be used, representing the size of a
     transfer from disk to memory.  The default value is 512.


'-m, --mmap-size=NUM'
     The size (in bytes) of the memory-mapped region to be used.  With a
     value greater than zero, a memory map of the database will be
     created; thus the size specified must be large enough to fit the
     entire database.

'-c, --cache-size=NUM'
     The size (in bytes) of the bucket cache size to be used.


'-l, --no-lock'
     Do not perform file locking an the database.


'-n, --no-mmap'
     Do not create a memory map of the database.


'-v, --verbose'
     Print more run-time information.

'-?, --help'
     Show helpful information.

'--usage'
     Show shorter helpful information.

'-V, --version'
     Print the program version.

2 Commands
**********

Five commands are provided with zeptodb: 'zdbc', for creating databases,
'zdbs' for storing records in them, 'zdbf', for fetching records,
'zdbr', for removing records, and 'zdbi' for displaying information
about a database.

2.1 zdbc
========

'zdbc' is used to create a new database file.  It accepts all of the
common options.  Running the command on an existing database will
_overwrite_ the existing contents!


   In addition to the database file to be used and the common options,
the 'zdbc' command accepts the following options:


























'-s, --sync'
     Automatically synchronize all database operations to the disk.

2.2 zdbs
========

'zdbs' is used to store records in a database file.  Records are entered
via 'stdin' or, optionally, they are read from an input file, with one
record per line.  Each record should consist of one key-value pair.  The
values should be separated from the keys by a common delimiter ('|' by
default), for example "key|value".

   In addition to the database file to be used and the common options,
the 'zdbs' command accepts the following options:

'-d, --delim=CHAR'
     Delimiter character separating keys from values (default '|').

'-i, --input=FILE'
     Read new records from a file instead of from 'stdin'.

'-s, --sync'
     Automatically synchronize all database operations to the disk.










2.3 zdbf
========

'zdbf' is used to fetch records from a database file.  Queries are read
from 'stdin' or, optionally, from a text file.  Records with key values
that match the queries will be printed to 'stdout'.  By default, only
the corresponding values will be printed.  However, if a delimiter
character is provided, both keys and values will be printed.  Finally,
an option is available to simply print all records in the database.

   In addition to the database file to be used and the common options,
the 'zdbf' command accepts the following options:

'-a, --all'
     Fetch all the records in the database.

'-d, --delim=CHAR'
     Delimiter character to separate printed keys from values (default
     none; only values will be printed).

'-i, --input=FILE'
     Read queries from a file instead of from 'stdin'.













2.4 zdbr
========

'zdbr' is used to remove records from a database.  The records to be
removed are specified by their keys and are entered via 'stdin' or,
optionally, they are read from a text file.  If many records are removed
from the database, some fragmentation can occur.  In this case, it is
advisable to reorganize the database, which is possible via the
'--reorganize' option.

   In addition to the database file to be used and the common options,
the 'zdbf' command accepts the following options:

'-i, --input=FILE'
     Read queries from a file instead of from 'stdin'.

'-r, --reorganize'
     Reorganize the database.

'-s, --sync'
     Automatically synchronize all database operations to the disk.

2.5 zdbi

========

'zdbi' prints out information on a database file.  It accepts the common
options.




Appendix A Copying This Manual
******************************

A.1 GNU Free Documentation License
==================================

Changes to www/zeptodb.txt.gz.

cannot compute difference between binary files