diff --git a/README b/README new file mode 100644 index 0000000..80a5978 --- /dev/null +++ b/README @@ -0,0 +1,77 @@ +mtredisalize +------------ + +A simple server that offers a TCP/Redis interface for LevelDB and SQLite3 based +Minetest worlds. + +Disclaimer: + + !!! This software is very young and not well tested! Use at your own risk. + !!! If you want to try it out backup your original databases, please! + !!! Motivation: + +The Redis backend is nice if you want to do use the backend for other +purposes than backing the Minetest server at the same time, e.g. do +some mapping. On the other hand the Redis is by its nature as an in-memory +database quiet a memory hungry beast. This is fine if you have smaller +worlds or a lot of hardware to throw on it. + +The other two backends (SQLite3 and LevelDB) are embedded database +which are hard to work with if you want to access them from another +process. + +The idea of mtredisalize is to wrap a server around the embedded databases +and offer a TCP Redis interface a Minetest server and other +processes can connect with. + + Beware! This is _not_ a fully featured Redis server with all of its commands. + Only the subset of Redis commands is implemented which is needed to run Minetes + on top of it. + +To build mtredisalize a Go 1.x (x >= 1) enviroment is needed. By now +it is only tested on Ubuntu 14.04/amd64. + +Obtain: + + $ go get bitbucket.org/s_l_teichmann/mtredisalize + +Development: + + $ go get github.com/mattn/go-sqlite3 + $ go get github.com/jmhodges/levigo + $ hg clone https://s_l_teichmann@bitbucket.org/s_l_teichmann/mtredisalize + $ go build + +Usage: + + $ mtredisalize [] /path/to/database + + with options: + -cache=32: cache size in MB # Cache size for LevelDB + -driver="leveldb": type of database (leveldb, sqlite) + -host="": host to bind + -port=6379: port to bind + +To use mtredisalize with your particular world you have to modify the +world.mt of the world. + +You have to set the backend to redis and redis_address, the redis_port and the +redis_hash to match the start options of mtredisalize. The hash is ignored by +mtredisalize but has to be in the world.mt to make Minetest happy. +redis_port defaults to 6379. + + gameid = minetest + backend = redis + redis_address = localhost + redis_port = 6380 + redis_hash = IGNORED + +would e.g. matches: + + $ mtredisalize --port=6380 --host=localhost .. + +The mandatory path is the path to the database file: map.sqlite in case +of SQLite3 and the directoy map.db in case of LevelDB right beside the world.mt file. + +This is Free Software under the terms of the MIT license. See LICENSE file for details. +(c) 2014 by Sascha L. Teichmann