<p align="left">
<a href="https://tarantool.io/en/">
<img
alt="Tarantool"
src="https://i.imgur.com/BUYqImx.png"
width="400"
/>
</a>
</p>
[reference-url]: https://dbdb.io/media/logos/tarantool.png
**A feature-rich in-memory database.** It has performance of a key-value cache with functionality you would expect from a regular database:
- SQL
- ACID
- Primary and secondary indexes
- Disk engine
- Stored procedures
- Replication
- Sharding
- And a wealth of modules and connectors from popular languages.
Another Tarantool feature is the ability to write code in a general purpose programming language right inside the database. It allows you to write custom expiration strategies, business logic and synchronize data with other data sources.
Tarantool can be used for any KV purposes or use it instead of Redis when you need secondary indexes, another structure of storage data, SQL e.t.c.
For more information on using Tarantool, see the [Tarantool documentation](https://www.tarantool.io/en/doc/2.2/).
## Getting started
### **[Try Tarantool online](try-online-url)**
#### Or use Docker image
```bash
docker run -d -p 3301:3301 -v $(pwd):/var/lib/tarantool tarantool/tarantool:2
```
#### Local installation
Ubuntu/Debian/Centos:
```bash
curl -L http://tarantool.io/installer.sh | VER=2.2 bash
```
Mac OS installation using [Homebrew](https://brew.sh):
```bash
brew install tarantool
```
For more details, please visit
https://tarantool.io/download.
To build Tarantool from source, see detailed instructions in the Tarantool
documentation at https://tarantool.io/doc/2.2/dev_guide/building_from_source/.
### Connectors
We have connectors for all popular languages. [Checkout your language connector details][connectors-url] and connect to your current instance of Tarantool.
## Community
### Telegram
We have community chats at Telegram:
* for Russian speakers [at here](http://teleg.run/tarantoolru)
* for English speakers [at here](http://teleg.run/tarantool)
## Use cases
* Profile cache
* Queue
* Smart transactional cache:
The cache stands between the web server and your storage.
In this configuration, Tarantool handles read requests with substanstially lower - by orders of magnitude - latency
(compared with relational storages: MySQL, PostgreSQL),
and boosts your throughput for read/write requests because all data are stored in RAM.
**Key notes for cache:**
* data persistence
* sharding
* transactions
* hot data is always in the cache
* any logic for evicting data to a cold storage
* Any other use-case for DB with stored procedures
## Ready-made examples
See [tarantool/examples](https://github.com/tarantool/examples) repository for viewing source code of typical cases projects.
## Who uses Tarantool
* Nokia (as part of their IoT platform: in-memory DB + Lua scripting)
* Russian Enterprise: banks, telecoms, retails
* Mail.Ru — Russia's internet company. Uses Tarantool at mail, advertisement system, social services, media projects
* Mastercard
* Avito - Russia's largest ad service
* and many other companies.
## Mailing lists
- Patch submissions and discussion of particular patches are
[here](https://lists.tarantool.org/mailman/listinfo/tarantool-patches/)
- General development discussions are
[here](https://lists.tarantool.org/mailman/listinfo/tarantool-discussions/)
---
Please report bugs at https://github.com/tarantool/tarantool/issues
We also warmly welcome your feedback in the
discussion mailing list, tarantool@googlegroups.com.
Thank you for your interest for Tarantool!
[connectors-url]: https://www.tarantool.io/doc/2.2/book/connectors/
[try-online-url]: https://www.tarantool.io/en/try-dev/
[telegram-url]: http://telegram.me/tarantool