|
1 | 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2 | 2 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3 | 3 | <html>
|
4 |
| - <head> |
5 |
| - <title>libgit2: a linkable library for Git</title> |
6 |
| - <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> |
7 |
| - <link href="stylesheets/application.css" media="all" rel="stylesheet" type="text/css"/> |
8 |
| - <link href="stylesheets/sunburst.css" media="all" rel="stylesheet" type="text/css"/> |
9 |
| - </head> |
10 |
| - |
11 |
| - <body> |
12 |
| - <div id="body"><div id="contents"> |
13 |
| - <div id="header"> |
14 |
| - <a href="/"><img alt="a linkable library for Git" src="logo.png" width="725"/></a> |
15 |
| - </div> |
16 |
| - <div id="intro"> |
17 |
| - libgit2 is a portable, pure C implementation of the Git core methods provided as a |
18 |
| - re-entrant linkable library with a solid API, allowing you to write native |
19 |
| - speed custom Git applications in any language which supports C bindings. |
20 |
| - </div> |
21 |
| - <div class="contents"> |
22 |
| - <ul class="bullet"> |
23 |
| - <a class="button" href="#started">Getting started</a> |
24 |
| - <a class="button" href="#cando">What it can do</a> |
25 |
| - <a class="button" href="#install">Compiling the library</a> |
26 |
| - <a class="button" href="#bindings">Language bindings</a> |
27 |
| - </ul> |
28 |
| - </div> |
29 |
| - |
30 |
| - |
31 |
| - <h2 id="started">Getting started</h2> |
32 |
| - <div class="contents"><div class="bullet"> |
33 |
| - <div class="description"> |
34 |
| - In the current Git project, though a libgit.a file is produced it is |
35 |
| - not re-entrant (it will call <code>die()</code> on basically any error) |
36 |
| - and it has no stable or well-designed public API. As there is no good |
37 |
| - way to link to this effectively, a new library was needed that fulfilled |
38 |
| - these requirements. Thus libgit2. |
39 |
| - </div> |
40 |
| - <div class="description"> |
41 |
| - <h3>libgit2 is...</h3> |
42 |
| - <ul> |
43 |
| - <li><b>faster</b> than any other Git library</li> |
44 |
| - <li>written in standards compilant <b>C99</b></li> |
45 |
| - <li>completely <b>multi-platform</b>: Windows, Linux, Mac OS X, xBSD</li> |
46 |
| - <li>compiled <b>natively</b> under all platforms (yes, even MSVC on Windows)</li> |
47 |
| - <li><b>re-entrant</b>, with sane error handling</li> |
48 |
| - <li>designed with a solid and <b>consistent API</b></li> |
49 |
| - <li>available as bindings for <b>all major scripting languages</b></li> |
50 |
| - <li>compiled with <b>minimal external dependencies</b> (currently only zlib)</li> |
51 |
| - <li>licensed under the <b>GPLv2 with a linking exception</b>, so you can use it everywhere</li> |
52 |
| - </ul> |
53 |
| - </div> |
54 |
| - |
55 |
| - <div class="bullet"><div class="description"> |
56 |
| - <p>libgit2 is still in early development, and although it's already <a href="#cando">quite feature complete</a>, there are no official binary releases available yet. Interested early adopters must <a href="#install" class="link">compile the library</a> by hand -- which is easy enough to do.</p> |
57 |
| - <a class="button" href="https://github.com/libgit2/libgit2">Get the code at GitHub</a> |
58 |
| - </div> |
59 |
| - |
60 |
| - </div></div> |
61 |
| - |
62 |
| - |
63 |
| - |
64 |
| - <h2 id="cando">What it can do</h2> |
65 |
| - <div class="contents"><div class="bullet"> |
66 |
| - <div class="description"> |
67 |
| - libgit2 is already very usable: |
68 |
| - <ul> |
69 |
| - <li><a href="api.html#sha">SHA conversions and formatting</a></li> |
70 |
| - <li><a href="api.html#rawread">object reading (loose and packed)</a></li> |
71 |
| - <li><a href="api.html#rawwrite">object writing (loose)</a></li> |
72 |
| - <li><a href="api.html#parsing">commit, tag, tree and blob parsing and write-back</a></li> |
73 |
| - <li><a href="api.html#trees">tree traversal</a></li> |
74 |
| - <li><a href="api.html#revwalk">revision walking</a></li> |
75 |
| - <li><a href="api.html#index">index file (staging area) manipulation</a></li> |
76 |
| - <li>...and much more</li> |
77 |
| - </ul> |
78 |
| - |
79 |
| - <p>For full API documentation see the generated <a href="http://libgit2.github.com/libgit2/modules.html">Doxygen docs</a> or the <a href="api.html">usage guide</a>.</p> |
80 |
| - </div> |
81 |
| - </div></div> |
82 |
| - |
83 |
| - |
84 |
| - |
85 |
| - <h2 id="install">Building the library</h2> |
86 |
| - <div class="contents"><div class="bullet"> |
87 |
| - <div class="description"> |
88 |
| - libgit2 uses <a href="http://code.google.com/p/waf/">waf</a> as its buildsystem, |
89 |
| - and hence requires <a href="http://www.python.org">Python 2.4 or better</a> to |
90 |
| - configure the build. The library can be built under the following platforms: |
91 |
| - <b>Linux</b>, <b>Mac OS X</b>, <b>xBSD</b>, <b>Windows (MSVC)</b> and <b>Windows (MinGW)</b>. |
92 |
| - </div> |
93 |
| - |
94 |
| - <div id="build_unix"> |
95 |
| - <div class="description">Start by configuring the build system by running:</div> |
96 |
| - <pre class="sunburst">$ ./waf configure</pre> |
97 |
| - <div class="description">Then build the library, either in its shared or static form</div> |
98 |
| - <pre class="sunburst">$ ./waf build-static |
| 4 | + <head> |
| 5 | + <title>libgit2: a linkable library for Git</title> |
| 6 | + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> |
| 7 | + <link href="stylesheets/application.css" media="all" rel="stylesheet" type="text/css"/> |
| 8 | + <link href="stylesheets/sunburst.css" media="all" rel="stylesheet" type="text/css"/> |
| 9 | + </head> |
| 10 | + |
| 11 | + <body> |
| 12 | + <div id="body"><div id="contents"> |
| 13 | + <div id="header"> |
| 14 | + <a href="/"><img alt="a linkable library for Git" src="logo.png" width="725"/></a> |
| 15 | + </div> |
| 16 | + <div id="intro"> |
| 17 | + libgit2 is a portable, pure C implementation of the Git core methods provided as a |
| 18 | + re-entrant linkable library with a solid API, allowing you to write native |
| 19 | + speed custom Git applications in any language which supports C bindings. |
| 20 | + </div> |
| 21 | + <div class="contents"> |
| 22 | + <ul class="bullet"> |
| 23 | + <a class="button" href="#started">Getting started</a> |
| 24 | + <a class="button" href="#cando">What it can do</a> |
| 25 | + <a class="button" href="#install">Compiling the library</a> |
| 26 | + <a class="button" href="#bindings">Language bindings</a> |
| 27 | + </ul> |
| 28 | + </div> |
| 29 | + |
| 30 | + |
| 31 | + <h2 id="started">Getting started</h2> |
| 32 | + <div class="contents"><div class="bullet"> |
| 33 | + <div class="description"> |
| 34 | + In the current Git project, though a libgit.a file is produced it is |
| 35 | + not re-entrant (it will call <code>die()</code> on basically any error) |
| 36 | + and it has no stable or well-designed public API. As there is no good |
| 37 | + way to link to this effectively, a new library was needed that fulfilled |
| 38 | + these requirements. Thus libgit2. |
| 39 | + </div> |
| 40 | + <div class="description"> |
| 41 | + <h3>libgit2 is...</h3> |
| 42 | + <ul> |
| 43 | + <li><b>faster</b> than any other Git library</li> |
| 44 | + <li>written in standards compilant <b>C99</b></li> |
| 45 | + <li>completely <b>multi-platform</b>: Windows, Linux, Mac OS X, xBSD</li> |
| 46 | + <li>compiled <b>natively</b> under all platforms (yes, even MSVC on Windows)</li> |
| 47 | + <li><b>re-entrant</b>, with sane error handling</li> |
| 48 | + <li>designed with a solid and <b>consistent API</b></li> |
| 49 | + <li>available as bindings for <b>all major scripting languages</b></li> |
| 50 | + <li>compiled with <b>minimal external dependencies</b> (currently only zlib)</li> |
| 51 | + <li>licensed under the <b>GPLv2 with a linking exception</b>, so you can use it everywhere</li> |
| 52 | + </ul> |
| 53 | + </div> |
| 54 | + |
| 55 | + <div class="bullet"><div class="description"> |
| 56 | + <p>libgit2 is still in early development, and although it's already <a href="#cando">quite feature complete</a>, there are no official binary releases available yet. Interested early adopters must <a href="#install" class="link">compile the library</a> by hand -- which is easy enough to do.</p> |
| 57 | + <a class="button" href="https://github.com/libgit2/libgit2">Get the code at GitHub</a> |
| 58 | + </div> |
| 59 | + |
| 60 | + </div></div> |
| 61 | + |
| 62 | + |
| 63 | + |
| 64 | + <h2 id="cando">What it can do</h2> |
| 65 | + <div class="contents"><div class="bullet"> |
| 66 | + <div class="description"> |
| 67 | + libgit2 is already very usable: |
| 68 | + <ul> |
| 69 | + <li><a href="api.html#sha">SHA conversions and formatting</a></li> |
| 70 | + <li><a href="api.html#rawread">object reading (loose and packed)</a></li> |
| 71 | + <li><a href="api.html#rawwrite">object writing (loose)</a></li> |
| 72 | + <li><a href="api.html#parsing">commit, tag, tree and blob parsing and write-back</a></li> |
| 73 | + <li><a href="api.html#trees">tree traversal</a></li> |
| 74 | + <li><a href="api.html#revwalk">revision walking</a></li> |
| 75 | + <li><a href="api.html#index">index file (staging area) manipulation</a></li> |
| 76 | + <li>...and much more</li> |
| 77 | + </ul> |
| 78 | + |
| 79 | + <p>For full API documentation see the generated <a href="http://libgit2.github.com/libgit2/modules.html">Doxygen docs</a> or the <a href="api.html">usage guide</a>.</p> |
| 80 | + </div> |
| 81 | + </div></div> |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | + <h2 id="install">Building the library</h2> |
| 86 | + <div class="contents"><div class="bullet"> |
| 87 | + <div class="description"> |
| 88 | + libgit2 uses <a href="http://code.google.com/p/waf/">waf</a> as its buildsystem, |
| 89 | + and hence requires <a href="http://www.python.org">Python 2.4 or better</a> to |
| 90 | + configure the build. The library can be built under the following platforms: |
| 91 | + <b>Linux</b>, <b>Mac OS X</b>, <b>xBSD</b>, <b>Windows (MSVC)</b> and <b>Windows (MinGW)</b>. |
| 92 | + </div> |
| 93 | + |
| 94 | + <div id="build_unix"> |
| 95 | + <div class="description">Start by configuring the build system by running:</div> |
| 96 | + <pre class="sunburst">$ ./waf configure</pre> |
| 97 | + <div class="description">Then build the library, either in its shared or static form</div> |
| 98 | + <pre class="sunburst">$ ./waf build-static |
99 | 99 | $ ./waf build-shared</pre>
|
100 |
| - <div class="description">You can then test the library with:</div> |
101 |
| - <pre class="sunburst">$ ./waf test</pre> |
102 |
| - <div class="description">And finally you can install it with (you may need to sudo):</div> |
103 |
| - <pre class="sunburst">$ ./waf install</pre> |
104 |
| - <div class="description"> |
105 |
| - Once that is done, you should be able to link the library to your program |
106 |
| - with a normal <code>-lgit2</code>.</div> |
107 |
| - </div> |
108 |
| - |
109 |
| - <div class="description"> |
110 |
| - Detailed build instructions for different platforms can be found in libgit2's |
111 |
| - <a href="https://github.com/libgit2/libgit2/blob/master/README.md">readme file</a>. |
112 |
| - </div> |
113 |
| - </div></div> |
114 |
| - |
115 |
| - |
116 |
| - |
117 |
| - <h2 id="bindings">Language bindings</h2> |
118 |
| - <div class="contents"><div class="bullet"> |
119 |
| - <div class="description"> |
120 |
| - There are already a number of language bindings in the works, so you can |
121 |
| - use Git at native speed from your favorite programming language. |
122 |
| - </div> |
123 |
| - </div> |
124 |
| - |
125 |
| - <div class="bullet"> |
126 |
| - <div class="description"> |
127 |
| - <h3>Rugged (Ruby bindings)</h3> |
128 |
| - <p> |
129 |
| - Rugged (previously known as Ribbit) is the reference bindings for libgit2, used to make sure the |
130 |
| - source C API is sane and functional. They are always in sync with the libgit2 master branch. |
131 |
| - </p> |
132 |
| - <a class="button" href="https://github.com/libgit2/rugged">Get Rugged</a> |
133 |
| - </div> |
134 |
| - </div> |
135 |
| - |
136 |
| - <div class="bullet"> |
137 |
| - <div class="description"> |
138 |
| - <h3>pygit2 (Python bindings)</h3> |
139 |
| - <p>pygit2 are the Python 2.6+ bindings for libgit2 mantained by David Borowitz. |
140 |
| - They should be (mostly) up to date with the library changes.</p> |
141 |
| - </div> |
142 |
| - <a class="button" href="https://github.com/libgit2/pygit2">Get pygit2</a> |
143 |
| - </div> |
144 |
| - |
145 |
| - <div class="bullet"> |
146 |
| - <div class="description"> |
147 |
| - <h3>libgit2sharp (.NET bindings)</h3> |
148 |
| - <p> |
| 100 | + <div class="description">You can then test the library with:</div> |
| 101 | + <pre class="sunburst">$ ./waf test</pre> |
| 102 | + <div class="description">And finally you can install it with (you may need to sudo):</div> |
| 103 | + <pre class="sunburst">$ ./waf install</pre> |
| 104 | + <div class="description"> |
| 105 | + Once that is done, you should be able to link the library to your program |
| 106 | + with a normal <code>-lgit2</code>.</div> |
| 107 | + </div> |
| 108 | + |
| 109 | + <div class="description"> |
| 110 | + Detailed build instructions for different platforms can be found in libgit2's |
| 111 | + <a href="https://github.com/libgit2/libgit2/blob/master/README.md">readme file</a>. |
| 112 | + </div> |
| 113 | + </div></div> |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | + <h2 id="bindings">Language bindings</h2> |
| 118 | + <div class="contents"><div class="bullet"> |
| 119 | + <div class="description"> |
| 120 | + There are already a number of language bindings in the works, so you can |
| 121 | + use Git at native speed from your favorite programming language. |
| 122 | + </div> |
| 123 | + </div> |
| 124 | + |
| 125 | + <div class="bullet"> |
| 126 | + <div class="description"> |
| 127 | + <h3>Rugged (Ruby bindings)</h3> |
| 128 | + <p> |
| 129 | + Rugged (previously known as Ribbit) is the reference bindings for libgit2, used to make sure the |
| 130 | + source C API is sane and functional. They are always in sync with the libgit2 master branch. |
| 131 | + </p> |
| 132 | + <a class="button" href="https://github.com/libgit2/rugged">Get Rugged</a> |
| 133 | + </div> |
| 134 | + </div> |
| 135 | + |
| 136 | + <div class="bullet"> |
| 137 | + <div class="description"> |
| 138 | + <h3>pygit2 (Python bindings)</h3> |
| 139 | + <p>pygit2 are the Python 2.6+ bindings for libgit2 mantained by David Borowitz. |
| 140 | + They should be (mostly) up to date with the library changes.</p> |
| 141 | + </div> |
| 142 | + <a class="button" href="https://github.com/libgit2/pygit2">Get pygit2</a> |
| 143 | + </div> |
| 144 | + |
| 145 | + <div class="bullet"> |
| 146 | + <div class="description"> |
| 147 | + <h3>libgit2sharp (.NET bindings)</h3> |
| 148 | + <p> |
149 | 149 | libgit2sharp is a set of bindings for .NET
|
150 |
| - </p> |
151 |
| - <a class="button" href="https://github.com/nulltoken/libgit2sharp">Get libgit2sharp</a> |
152 |
| - </div> |
153 |
| - </div> |
154 |
| - </div> |
155 |
| - <div class="bullet"> |
156 |
| - <div class="description"> |
157 |
| - <h3>Geef (Erlang bindings)</h3> |
158 |
| - <p> |
159 |
| - Geef is an example of an Erlang NIF binding to libgit2. A bit out of |
160 |
| - date, but can be made to mostly work. |
161 |
| - </p> |
162 |
| - <a class="button" href="https://github.com/schacon/geef">Get Geef</a> |
163 |
| - </div> |
164 |
| - </div> |
165 |
| - </div> |
166 |
| - |
167 |
| - |
168 |
| - </div></div> |
169 |
| - |
170 |
| - <div id="credits"> |
171 |
| - <p>Thanks to the folks at <a href="http://gembundler.com">Bundler</a> for letting us steal their awesome CSS</p> |
172 |
| - </div> |
173 |
| - <a href="https://github.com/libgit2/libgit2" id="github"> |
174 |
| - <img alt="Fork me on GitHub" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" /> |
175 |
| - </a> |
| 150 | + </p> |
| 151 | + <a class="button" href="https://github.com/nulltoken/libgit2sharp">Get libgit2sharp</a> |
| 152 | + </div> |
| 153 | + </div> |
| 154 | + </div> |
| 155 | + <div class="bullet"> |
| 156 | + <div class="description"> |
| 157 | + <h3>Geef (Erlang bindings)</h3> |
| 158 | + <p> |
| 159 | + Geef is an example of an Erlang NIF binding to libgit2. A bit out of |
| 160 | + date, but can be made to mostly work. |
| 161 | + </p> |
| 162 | + <a class="button" href="https://github.com/schacon/geef">Get Geef</a> |
| 163 | + </div> |
| 164 | + </div> |
| 165 | + </div> |
| 166 | + |
| 167 | + |
| 168 | + </div></div> |
| 169 | + |
| 170 | + <div id="credits"> |
| 171 | + <p>Thanks to the folks at <a href="http://gembundler.com">Bundler</a> for letting us steal their awesome CSS</p> |
| 172 | + </div> |
| 173 | + <a href="https://github.com/libgit2/libgit2" id="github"> |
| 174 | + <img alt="Fork me on GitHub" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" /> |
| 175 | + </a> |
176 | 176 | </body>
|
177 | 177 | </html>
|
0 commit comments