-
Notifications
You must be signed in to change notification settings - Fork 16
/
related-projects.html
170 lines (163 loc) · 9.61 KB
/
related-projects.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
---
layout: en
title: Related Projects
---
<section id="related-projects">
<h2>Groonga and related projects</h2>
<p>Groonga related projects are classified into five category, as follows:</p>
<ul>
<li><a href="#databases">Databases</a></li>
<li><a href="#bindings">Language bindings</a></li>
<li><a href="#libraries">Client libraries</a></li>
<li><a href="#server-utilities">Server utilities</a></li>
<li><a href="#cli-utilities">Command line utilities</a></li>
</ul>
<p>See following sections about actual Groonga related projects and details.</p>
<section id="databases">
<h3>Databases</h3>
<p>There are some software used with other database products. You can use extended SQL query.</p>
<figure>
<img src="images/groonga-related-projects-databases.png" />
</figure>
<section id="mroonga">
<h4>Groonga + MySQL</h4>
<p><a href="http://mroonga.org/">Mroonga</a> is a MySQL storage engine built on Groonga. It adds high performance and high accuracy fulltext search feature to MySQL.</p>
</section>
<section id="pgroonga">
<h4>Groonga + PostgreSQL</h4>
<p><a href="https://pgroonga.github.io/">PGroonga</a> is a PostgreSQL extension to use Groonga as the index. You can use fast full text search feature against all languages by installing PGroonga into your PostgreSQL.</p>
</section>
</section>
<section id="bindings">
<h3>Language bindings</h3>
<p>There are some language bindings for Groonga. You can use Node.js, Ruby and Perl as language bindings which provides HTTP/API access.</p>
<figure>
<img src="images/groonga-related-projects-bindings.png" alt="Node.js is an official trademark of Joyent.
This image is not formally related to or endorsed by the official Joyent Node.js open source or commercial project." />
</figure>
<section id="nroonga">
<h4>Groonga + Node.js</h4>
<p><a href="http://nroonga.github.com/">Nroonga</a> is a Groonga binding for Node.js. Nroonga uses Groonga as a library. It means that fulltext search is done in Node.js process.</p>
</section>
<section id="rroonga">
<h4>Groonga + Ruby</h4>
<p><a href="http://ranguba.org/#about-rroonga">Rroonga</a> is a Ruby bindings for Groonga. Rroonga is a part of <a href="http://ranguba.org/">The Ranguba project</a> which provides a fulltext search system built on Groonga.
</section>
<section id="grnmini">
<h4>Groonga + Ruby</h4>
<p><a href="https://github.com/ongaeshi/grn_mini">GrnMini</a> is Rroonga wrapper for using easily.</p>
</section>
<section id="p5-groonga">
<h4>Groonga + Perl</h4>
<p><a href="https://github.com/yappo/p5-Groonga">p5-Groonga</a> is a Perl bindings for Groonga. You can use Groonga as a library in Perl.</p>
</section>
<section id="ploonga">
<h4>Groonga + Perl</h4>
<p><a href="https://github.com/charsbar/groonga-api">Ploonga</a> is a Perl bindings for Groonga. You can use Groonga as a library in Perl.</p>
</section>
<section id="proonga">
<h4>Groonga + PHP</h4>
<p><a href="https://github.com/Yujiro3/proonga">Proonga</a> is a PHP bindings for Groonga. You can use Groonga as a library in PHP.</p>
</section>
<section id="haroonga">
<h4>Groonga + Haskell</h4>
<p><a href="https://github.com/cosmo0920/haroonga">Haroonga</a> is a Haskell bindings for Groonga. You can use both Groonga command layer API and low layer API in Haskell.</p>
</section>
<section id="groonga-gobject">
<h4>Groonga + GObject</h4>
<p><a href="https://github.com/groonga/groonga-gobject">Groonga-GObject</a> is a GObject wrapper of Groonga using <a href="https://wiki.gnome.org/Projects/GObjectIntrospection">GObject Introspection</a>. You can use Groonga as a library in some programming languages.</p>
</section>
</section>
<section id="libraries">
<h3>Client libraries</h3>
<p>There are some client libraries which provides API to connect to Groonga server in some program languages.</p>
<figure>
<img src="images/groonga-related-projects-libraries.png" alt="Node.js is an official trademark of Joyent.
This image is not formally related to or endorsed by the official Joyent Node.js open source or commercial project." />
</figure>
<p class="note">The gqtp described in above picture means "groonga query transfer protocol".</p>
<section id="anyevent-groonga">
<h4>Groonga + Perl</h4>
<p><a href="http://search.cpan.org/~miki/AnyEvent-Groonga/">AnyEvent-Groonga</a> is a high performance Groonga client library for Perl. It accesses Groonga server asynchronously.</p>
</section>
<section id="node-groonga">
<h4>Groonga + Node.js</h4>
<p><a href="https://github.com/hideo55/node-groonga">node-groonga</a> is a client library of Groonga server for Node.js. Node-groonga uses Groonga as a server. It means that fulltext search is done in Groonga server process not Node.js process.</p>
</section>
<section id="groonga-client">
<h4>Groonga + Ruby</h4>
<p><a href="https://github.com/ranguba/groonga-client">Groonga-client</a> is a client library of Groonga server for Ruby. It supports GQTP and HTTP.</p>
</section>
<section id="gqtp-gem">
<h4>Groonga + Ruby</h4>
<p><a href="https://github.com/ranguba/gqtp">GQTP gem</a> is a GQTP (Groonga Query Transfer Protocol) Ruby implementation. Gqtp gem provides both GQTP client, GQTP server and GQTP proxy implementations. They provide asynchronous API. You can use gqtp gem for high concurrency use.</p>
</section>
<section id="pyroonga">
<h4>Groonga + Python</h4>
<p><a href="https://github.com/naoina/pyroonga">pyroonga</a> is a client library of Groonga server in Python. It supports GQTP.</p>
</section>
<section id="poyonga">
<h4>Groonga + Python</h4>
<p><a href="https://github.com/hhatto/poyonga">poyonga</a> is a client library of Groonga server in Python. It supports GQTP and HTTP.</p>
</section>
<section id="groonga-http-php">
<h4>Groonga + PHP</h4>
<p><a href="https://github.com/nise-nabe/groonga-http-php">groonga-http-php</a> is a clinet library of Groonga server in PHP. It supports HTTP.</p>
</section>
<section id="php-phroonga">
<h4>Groonga + PHP</h4>
<p><a href="https://github.com/do-aki/php-phroonga">php-phroonga</a> is a client library of Groonga server in PHP. It supports HTTP.</p>
</section>
<section id="eroonga">
<h4>Groonga + Erlang</h4>
<p><a href="https://github.com/tomaon/eroonga">eroonga</a> is a client library of Groonga server. It is implemented by only Erlang. You can connect to Groonga server that uses gqtp.</p>
</section>
<section id="goroo">
<h4>Groonga + Go</h4>
<p><a href="https://github.com/hhatto/goroo">goroo</a> is a client library of Groonga server in Go. It supports HTTP and GQTP.</p>
</section>
<section id="groonga4s">
<h4>Groonga + Scala</h4>
<p><a href="https://github.com/naokia/groonga4s">groonga4s</a> is a client library of Groonga server in Scala. It supports HTTP.</p>
</section>
<section id="ruroonga-client">
<h4>Groonga + Rust</h4>
<p><a href="https://github.com/cosmo0920/ruroonga_client">ruroonga_client</a> is a client library of Groonga server implemented with Rust. It supports HTTP.</p>
</section>
</section>
<section id="server-utilities">
<h3>Sever utilities</h3>
<p>There are some libraries which provides convenient API or HTTP functionality (reverse proxy) for Groonga server use.</p>
<section id="p5-app-groonga-wrapper">
<h4>App-Groonga-Wrapper</h4>
<p><a href="https://github.com/hideo55/p5-App-Groonga-Wrapper">App::Groonga::Wrapper</a> is a reverse proxy for local HTTP protocol Groonga server. It adds security mechanism to Groonga server. It is written in Perl.</p>
</section>
<section id="sewell">
<h4>Sewell</h4>
<p><a href="https://github.com/ssig33/sewell">Sewell</a> is a generator for Groonga's query in Ruby. It is useful for both of Groonga server use and Rroonga.</p>
</section>
</section>
<section id="cli-utilities">
<h3>Command line utilities</h3>
<p>There are some utilities which improves CLI (command line interface) for Groonga.</p>
<figure>
<img src="images/groonga-related-projects-utilities.png" />
</figure>
<section id="grnwrap">
<h4>grnwrap</h4>
<p><a href="https://github.com/michisu/grnwrap">grnwrap</a> is a utility that improves Groonga's command line interface.</p>
</section>
<section id="grnline-fs">
<h4>grnline.fs</h4>
<p><a href="https://github.com/cosmo0920/grnline.fs">grnline.fs</a> resolves character encoding problem which is contained in Groonga command for non UTF-8 environment Windows, such as using cp932 code page. This tool is implemented with .NET. And it supports reading/writing Groonga databases which are created in Linux, Mac, and other Unix like environment.</p>
</section>
<section id="grnlip">
<h4>Grnlip</h4>
<p><a href="https://github.com/myokoym/grnlip">Grnlip</a> is a CLI for Groonga using Readline. Supports UTF-8 database on Windows. It's written in Ruby and published on RubyGems.org.</p>
</section>
<section id="zsh-completions">
<h4>Zsh completion functions</h4>
<p><a href="https://github.com/hhatto/zsh_completions/">zsh_completions</a> are Zsh completion functions by hhato. They includes completion functions for Groonga, groonga-suggest-httpd and groonga-suggest-learner.</p>
</section>
</section>
</section>