Blazing fast and lightweight PostGIS, MBtiles and PMtiles tile server, tile generation, and mbtiles tooling.
Go to file
dependabot[bot] de69f3bbff
chore(deps): Bump openssl from 0.10.53 to 0.10.54 (#698)
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.53
to 0.10.54.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sfackler/rust-openssl/releases">openssl's
releases</a>.</em></p>
<blockquote>
<h2>openssl-v0.10.54</h2>
<h2>What's Changed</h2>
<ul>
<li>Remove converting PKCS#8 passphrase to CString by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/1941">sfackler/rust-openssl#1941</a></li>
<li>Version bump for openssl v0.10.54 release by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/1942">sfackler/rust-openssl#1942</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.53...openssl-v0.10.54">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.53...openssl-v0.10.54</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4b4a344a14"><code>4b4a344</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/1942">#1942</a>
from alex/openssl-release</li>
<li><a
href="68ff80a935"><code>68ff80a</code></a>
Version bump for openssl v0.10.54 release</li>
<li><a
href="b811d71aac"><code>b811d71</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/1941">#1941</a>
from alex/pkcs8-passphrase</li>
<li><a
href="b83aec7f30"><code>b83aec7</code></a>
Remove converting PKCS#8 passphrase to CString</li>
<li>See full diff in <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.53...openssl-v0.10.54">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openssl&package-manager=cargo&previous-version=0.10.53&new-version=0.10.54)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-02 03:35:23 +00:00
.cargo Add .mbtiles support (#549) 2023-01-09 00:10:23 -05:00
.cargo-husky/hooks bump to 0.6.2 2022-12-13 20:14:07 -05:00
.github add CI path ignores 2023-05-29 21:00:44 -04:00
benches Require PostGIS 3 and use ST_TileEnvelope (#497) 2022-11-30 18:57:27 +02:00
demo Simplify demo - remove nginx (#692) 2023-05-31 00:56:11 +02:00
docs improving readme/docs 2023-06-01 16:15:05 -04:00
homebrew-formula add brew Formula (#623) 2023-05-24 00:34:12 -04:00
martin-mbtiles Add just prepare-sqlite to simplify sqlite dev 2023-06-01 13:07:13 -04:00
martin-tile-utils Consolidate all crate dependencies (#694) 2023-06-01 09:05:06 -04:00
src In auto-discover, hide geocolumns from tables with multiple ones (#663) 2023-05-22 09:44:21 -04:00
tests allow resize menu by drag side on tests/debug.html (#677) 2023-05-25 12:07:43 -04:00
.dockerignore Improve Coverage tooling (#535) 2022-12-27 06:56:27 +00:00
.gitignore Move files to demo/ 2023-05-29 20:36:24 -04:00
arm64.Dockerfile feat/add arm64 docker support (#613) 2023-03-28 06:28:55 +00:00
Cargo.lock chore(deps): Bump openssl from 0.10.53 to 0.10.54 (#698) 2023-06-02 03:35:23 +00:00
Cargo.toml Implement rudimentary mbtiles binary (#696) 2023-06-01 10:13:20 -04:00
CHANGELOG.md Migrate some urbica/martin -> maplibre/martin (#347) 2022-06-11 10:51:41 +03:00
CODE_OF_CONDUCT.md feat: clean up readme and code of conduct (#382) 2022-08-11 07:06:12 -04:00
docker-compose.yml Move files to demo/ 2023-05-29 20:36:24 -04:00
Dockerfile feat/add arm64 docker support (#613) 2023-03-28 06:28:55 +00:00
justfile Add just prepare-sqlite to simplify sqlite dev 2023-06-01 13:07:13 -04:00
LICENSE-APACHE Clean up licensing per on-boarding (#364) 2022-07-06 08:25:45 -04:00
LICENSE-MIT Clean up licensing per on-boarding (#364) 2022-07-06 08:25:45 -04:00
logo.png docs: ✏️ add notes on debugging 2019-02-04 20:22:04 +03:00
nginx.conf fix: tiles attribute in tilejson with x-rewrite-url (#266) 2021-10-15 18:19:36 +03:00
README.md improving readme/docs 2023-06-01 16:15:05 -04:00
release.toml docs: update CHANGELOG.md 2021-10-18 16:15:26 +03:00
rustfmt.toml sort use-statements during fmt (#376) 2022-08-06 12:48:10 -04:00
SECURITY_POLICY.txt Create SECURITY_POLICY.txt (#489) 2023-02-04 19:06:17 -05:00

Martin

Book docs.rs docs Slack chat GitHub crates.io version Security audit CI build

Martin is a tile server able to generate and serve vector tiles on the fly from large PostGIS databases, PMTile, and MBTile files, allowing multiple tile sources to be dynamically combined into one. Martin optimizes for speed and heavy traffic, and is written in Rust.

See Martin book for complete documentation.

Martin

Requirements

If using Martin with PostgreSQL database, you must install PostGIS with at least v3.0+, v3.1+ recommended.

Installation

You can download martin from GitHub releases page.

Platform Downloads (latest)
Linux 64-bit
macOS 64-bit
Windows 64-bit

If you are using macOS and Homebrew you can install martin using Homebrew tap.

brew tap maplibre/martin https://github.com/maplibre/martin.git
brew install maplibre/martin/martin

You can also use official Docker image, and share configuration file from the host with the container via the -v param. Config file is optional - you can let Martin auto-discover all sources e.g. by passing DATABASE_URL only.

export PGPASSWORD=postgres  # secret!
docker run -p 3000:3000 \
           -e PGPASSWORD \
           -e DATABASE_URL=postgresql://user@host:port/db \
           -v /path/to/config/dir:/config \
           ghcr.io/maplibre/martin --config /config/config.yaml

Usage

Martin supports any number of PostgreSQL/PostGIS database connections with geospatial-enabled tables and tile-producing SQL functions, as well as PMTile and MBTile files as tile sources.

Martin can auto-discover tables and functions using a connection string. A PG connection string can also be passed via the DATABASE_URL environment variable.

Each tile source will have a TileJSON endpoint.

Examples

# publish all tables and functions from a single database
export DATABASE_URL=postgresql://user:password@host:port/database
martin

# same as above, but passing connection string via CLI, together with a directory of .mbtiles/.pmtiles files  
martin postgresql://user:password@host:port/database path/to/dir

# publish all discovered tables/funcs from two DBs
# and generate config file with all detected sources
martin postgres://... postgres://...  --save-config config.yaml

# use configuration file instead of auto-discovery
martin --config config.yaml

API

Martin data is available via the HTTP GET endpoints:

URL Description
/ Status text, that will eventually show web UI
/catalog List of all sources
/{sourceID} Source TileJSON
/{sourceID}/{z}/{x}/{y} Source Tiles
/{sourceID1},...,{nameN} Composite Source TileJSON
/{sourceID1},...,{nameN}/{z}/{x}/{y} Composite Source Tiles
/health Martin server health check: returns 200 OK

Documentation

See Martin book for complete documentation.