# 5.3. GQTP

## 5.3.1. Summary

GQTP is the acronym standing for “Groonga Query Transfer Protocol”.

GQTP is a protocol designed for Groonga. It’s a stateful protocol. You can send multiple commands in one session.

GQTP will be faster rather than HTTP when you send many light commands like status. GQTP will be almost same performance as HTTP when you send heavy commands like select.

We recommend that you use HTTP for many cases. Because there are many HTTP client libraries.

If you want to use GQTP, you can use the following libraries:

> - Ruby: groonga-client

> - Python: poyonga

> - Go: goroo

> - PHP: proonga

> - C/C++: Groonga (Groonga can be also used as library)

It’s not a library but you can use groonga executable file as a GQTP client.

## 5.3.2. How to run

groonga executable file is a GQTP server implementation. You can run a Groonga server by the following command line:

    groonga --protocol gqtp -s [options] DB_PATH

You can run a Groonga server as a daemon by the following command line:

    groonga --protocol gqtp -d [options] DB_PATH

See groonga executable file for available `options`.

previous

5.2.3. groonga-httpd

next

5.4. Memcached binary protocol