MTSatellite is a "realtime" web mapping system for Minetest worlds. With this system you can play your world and you instantly have an online map of it which can be shared on the web.
Go to file
2014-09-07 17:29:42 +02:00
common Moved all the block producer/consumer interfaces to common. 2014-09-07 16:12:18 +02:00
interleaver Moved all the block producer/consumer interfaces to common. 2014-09-07 16:12:18 +02:00
backend.go Introduced non standard HSPATIAL hash first second which performs a spatial query between coords first and second. TODO: Implement in backends. Write documentation. 2014-09-01 00:19:47 +02:00
connection.go Introduced non standard HSPATIAL hash first second which performs a spatial query between coords first and second. TODO: Implement in backends. Write documentation. 2014-09-01 00:19:47 +02:00
leveldb.go Use BigMin instead of NaiveBigMin in spatial queries of SQLite and LevelDB backend. 2014-09-07 10:51:57 +02:00
LICENSE Added license: MIT 2014-08-03 15:59:56 +02:00
main.go Better usage message for mtredisalize 2014-09-07 15:02:39 +02:00
misc.go Added plain spatial query for LevelDB backend. 2014-09-01 16:12:24 +02:00
parser.go Small string cosmetics 2014-09-07 17:29:42 +02:00
README Small string cosmetics 2014-09-07 17:29:42 +02:00
sqlite.go Use BigMin instead of NaiveBigMin in spatial queries of SQLite and LevelDB backend. 2014-09-07 10:51:57 +02:00
TODO Mentioned the lack of docs for interleaving in TODO. 2014-08-23 19:04:36 +02:00

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 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 Minetest
   on top of it.

To build mtredisalize a Go 1.x (x >= 1) environment is needed. By now
it is only tested on Ubuntu 14.04/amd64.

Obtain:

  $ go get bitbucket.org/s_l_teichmann/mtredisalize

Development:

  $ go install github.com/mattn/go-sqlite3
  $ go install github.com/jmhodges/levigo
  $ hg clone  https://s_l_teichmann@bitbucket.org/s_l_teichmann/mtredisalize
  $ cd mtredisalize
  $ go build

Usage:

  $ mtredisalize [<options>] /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
    -gc-duration="24h": Duration between forced GCs.
    -port=6379: port to bind
    -version=false: Print version and exit.

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 directory 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