t-rex is a vector tile server specialized on publishing MVT tiles from your own data.
- Support for PostGIS databases and GDAL vector formats
- Auto-detection of layers in data source
- Built-in viewers for data display and inspection
- Tile generation command with simple parallelization
- Automatic reprojection to grid CRS
- Support for custom tile grids
- T-rex, a vector tile server for your own data (FOSS4G 2017): slides
- Vector Tiles - Introduction & Usage with QGIS (User meeting Bern 21.6.17): slides
- Von WMS zu WMTS zu Vektor-Tiles (FOSSGIS 2017): Video
- Workshop "Vector Tiles" (GEOSummit Bern 7.6.16): slides
t_rex serve --dbconn postgresql://user:pass@localhost/osm2vectortiles
Tiles are then served at http://localhost:6767/{layer}/{z}/{x}/{y}.pbf
A list of all detected layers is available at http://localhost:6767/
Use a tile cache:
t_rex serve --dbconn postgresql://user:pass@localhost/osm2vectortiles --cache /tmp/mvtcache
Generate a configuration template:
t_rex genconfig --dbconn postgresql://user:pass@localhost/osm2vectortiles | tee osm2vectortiles.toml
Run server with configuration file:
t_rex serve --config osm2vectortiles.toml
Generate tiles for cache:
t_rex generate --config osm2vectortiles.toml
Increase log level:
t_rex serve --loglevel debug --dbconn postgresql://user:pass@localhost/osm2vectortiles
t-rex is written in Rust. Minimal required rustc version is 1.45.
Build:
cargo build
Run tests:
cargo test --all
Run server with DB connection:
cargo run -- serve --dbconn postgresql://t_rex:[email protected]:5439/t_rex_tests
Decode a vector tile:
curl --silent http://127.0.0.1:6767/ne_10m_populated_places/5/31/17.pbf | protoc --decode=vector_tile.Tile t-rex-core/src/mvt/vector_tile.proto
Unit tests which need a PostgreSQL connection are ignored by default.
Start Test DB:
docker run -p 127.0.0.1:5439:5432 -d --name trextestdb --rm sourcepole/trextestdb
To run the database tests, declare the connection in an environment variable DBCONN
:
export DBCONN=postgresql://t_rex:[email protected]:5439/t_rex_tests
Run the tests with
cargo test --all -- --ignored
Creating test database locally:
# Set Postgresql environment variables when needed: PGHOST, PGPORT, PGUSER, PGPASSWORD
cd data
make createdb loaddata
t-rex is released under the MIT License.