Skip to content

Commit

Permalink
Merge branch 'main' into mlt-rust-poc
Browse files Browse the repository at this point in the history
  • Loading branch information
jjcfrancisco authored Feb 25, 2025
2 parents 2e34531 + 747132f commit 8412a79
Show file tree
Hide file tree
Showing 15 changed files with 421 additions and 372 deletions.
30 changes: 27 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,40 @@ updates:
schedule:
interval: daily
time: "02:00"
open-pull-requests-limit: 10
groups:
all-actions-version-updates:
applies-to: version-updates
patterns:
- "*"
all-actions-security-updates:
applies-to: security-updates
patterns:
- "*"
- package-ecosystem: "npm"
directory: "/js"
schedule:
interval: "daily"
open-pull-requests-limit: 20
versioning-strategy: increase
groups:
all-actions-version-updates:
applies-to: version-updates
patterns:
- "*"
all-actions-security-updates:
applies-to: security-updates
patterns:
- "*"
- package-ecosystem: cargo
directory: "/rust"
schedule:
interval: daily
time: "02:00"
open-pull-requests-limit: 10
groups:
all-actions-version-updates:
applies-to: version-updates
patterns:
- "*"
all-actions-security-updates:
applies-to: security-updates
patterns:
- "*"
2 changes: 1 addition & 1 deletion .github/workflows/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
steps:
- name: Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@v2.2.0
uses: dependabot/fetch-metadata@v2.3.0
with:
github-token: "${{secrets.GITHUB_TOKEN}}"
- name: Approve Dependabot PRs
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: EndBug/version-check@v2
with:
file-name: js/package.json

outputs:
publish: ${{ steps.check.outputs.changed }}

Expand Down
66 changes: 48 additions & 18 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,22 +1,52 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks

# exclusions should be separated with a pipe (|) character and a newline
exclude: |
(?x)^(
test/expected/.*
)$
ci:
autoupdate_schedule: monthly

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: check-yaml
args: [--allow-multiple-documents, --unsafe]
- id: end-of-file-fixer
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
- id: check-added-large-files
- id: check-executables-have-shebangs
- id: check-json
exclude: '.+/tsconfig.json'
- id: check-shebang-scripts-are-executable
exclude: '.+\.rs' # would be triggered by #![some_attribute]
- id: check-symlinks
- id: check-toml
- id: check-yaml
args: [ --allow-multiple-documents ]
- id: destroyed-symlinks
- id: end-of-file-fixer
- id: mixed-line-ending
args: [ --fix=lf ]
- id: trailing-whitespace

- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v19.1.4
hooks:
- id: clang-format
types: [ c++ ]

- repo: https://github.com/Mateusz-Grzelinski/actionlint-py
rev: v1.7.4.20
hooks:
- id: actionlint
additional_dependencies: [ shellcheck-py ]

- repo: local
hooks:
- id: check-yaml
args: [--allow-multiple-documents]
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v19.1.3
hooks:
- id: clang-format
types: [c++]
- repo: https://github.com/Mateusz-Grzelinski/actionlint-py
rev: v1.7.4.20
hooks:
- id: actionlint
additional_dependencies: [shellcheck-py]
- id: cargo-fmt
description: "Automatically format Rust code with cargo fmt"
entry: sh -c "cd rust && cargo fmt --all"
language: rust
name: Rust Format
pass_filenames: false
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# MapLibre Tiles (MLT)

The MapLibre Tile specification is mainly inspired by the [Mapbox Vector Tile (MVT)](https://github.com/mapbox/vector-tile-spec) specification,
The MapLibre Tile specification is mainly inspired by the [Mapbox Vector Tile (MVT)](https://github.com/mapbox/vector-tile-spec) specification,
but has been redesigned from the ground up to address the challenges of rapidly growing geospatial data volumes
and complex next-generation geospatial source formats as well as to leverage the capabilities of modern hardware and APIs.
MLT is specifically designed for modern and next generation graphics APIs to enable high-performance processing and rendering of
and complex next-generation geospatial source formats as well as to leverage the capabilities of modern hardware and APIs.
MLT is specifically designed for modern and next generation graphics APIs to enable high-performance processing and rendering of
large (planet-scale) 2D and 2.5 basemaps. In particular, MLT offers the following features:
- **Improved compression ratio**: up to 6x on large tiles, based on a column oriented layout with recursively applied (custom)
- **Improved compression ratio**: up to 6x on large tiles, based on a column oriented layout with recursively applied (custom)
lightweight encodings. This leads to reduced latency, storage, and egress costs and, in particular, improved cache utilization
- **Better decoding performance**: fast lightweight encodings which can be used in combination with SIMD/vectorization instructions
- **Support for linear referencing and m-values** to efficiently support the upcoming next generation source formats such as Overture Maps (GeoParquet)
- **Support 3D coordinates**, i.e. elevation
- **Support complex types**, including nested properties, lists and maps
- **Improved processing performance**, based on storage and in-memory formats that are specifically designed for modern GL APIs,
allowing for efficient processing on both CPU and GPU. The formats are designed to be loaded into
allowing for efficient processing on both CPU and GPU. The formats are designed to be loaded into
GPU buffers with little or no additional processing

📝 For a more in-depth exploration of MLT have a look at the [following slides](https://github.com/mactrem/presentations/blob/main/FOSS4G_2024_Europe/FOSS4G_2024_Europe.pdf) or watch
[this talk](https://www.youtube.com/watch?v=YHcoAFcsES0).
[this talk](https://www.youtube.com/watch?v=YHcoAFcsES0).


> [!CAUTION]
Expand Down
6 changes: 3 additions & 3 deletions java/README.MD
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@

> **_Notice:_** This experimental Java encoder uses the [FSST](https://www.vldb.org/pvldb/vol13/p2649-boncz.pdf) encoding for efficiently encoding
substrings of a tile. In the current research state only a quick solution has been implemented, with the restrication that only a windows build
> **_Notice:_** This experimental Java encoder uses the [FSST](https://www.vldb.org/pvldb/vol13/p2649-boncz.pdf) encoding for efficiently encoding
substrings of a tile. In the current research state only a quick solution has been implemented, with the restrication that only a windows build
> of the [FSST project](https://github.com/cwida/fsst) is available.
Generate Java metadata classes from ``maplibre_tile_metdata.proto`` file:
Generate Java metadata classes from ``maplibre_tile_metdata.proto`` file:
```console
protoc --java_out=src/main/java -I "..\..\spec\schema" mlt_tileset_metadata.proto
```
2 changes: 1 addition & 1 deletion java/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ dependencies {
implementation 'com.github.davidmoten:hilbert-curve:0.2.3'
implementation 'com.carrotsearch:hppc:0.10.0'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.3'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.3'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.11.4'
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.3'
testImplementation 'org.openjdk.jmh:jmh-core:1.37 '
testImplementation 'org.openjdk.jmh:jmh-generator-annprocess:1.37'
Expand Down
Loading

0 comments on commit 8412a79

Please # to comment.