t-rex-tileserver/t-rex has 578 GitHub stars and 72 forks. GitHot measured 0 stars in 24 hours and +1 in 7 days. Last checked 2026-11-10 03:28 UTC. Last push 2024-09-24.
t-rex is a vector tile server specialized on publishing MVT tiles from your own data
What you can do
- 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
Measured star growth
- in 24h
- 0
- in 7 days
- +1
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalDeprecation notice: This software is not maintained anymore. It is replaced by bbox-tile-server. See the t-rex migration guide for migrating projects.
t-rex
t-rex is a vector tile server specialized on publishing MVT tiles from your own data.
Features
- 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
Presentations
- 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
Examples
- basemap.de
- Swiss Ornithological Institute, Birds of Switzerland
Usage
Quick tour
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
For developers
t-rex is written in Rust. Minimal required rustc version is 1.45.
Software Requirements
Ubuntu 20.04 (Focal Fossa):
sudo apt install cargo libssl-dev libgdal-dev clang
Build and run
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
Database tests
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
S3 tests
Unit tests which need a S3 connection are skipped by default.
Install MinIO Client.
Start Test S3
docker run -d --rm -p 9000:9000 -e MINIO_REGION_NAME=my-region -e MINIO_ACCESS_KEY=miniostorage -e MINIO_SECRET_KEY=miniostorage minio/minio server /data && sleep 5 && mc config host add local-docker http://localhost:9000 miniostorage miniostorage && mc mb local-docker/trex && mc policy set download local-docker/trex
To run the S3 tests, declare that there is a S3 available in an environment vaiable S3TEST:
export S3TEST=true
Run the tests with
cargo test --all-features --all -- --ignored
License
t-rex is released under the MIT License.
Explore related projects
Asabeneh/30-Days-Of-Python
The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,486 starsgrafana/grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
77,790 starsredis/redis
For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.
77,332 starsapache/superset
Apache Superset is a Data Visualization and Data Exploration Platform
75,455 stars