martin/martin-mbtiles
Yuri Astrakhan 8b34cd374c
Add metadat copy/apply-diff, new testing framework (#921)
* Fix metadata copying
* Introduce a new metadata field `agg_tiles_hash_after_apply` for diff
files
* Added a lot of new info and debug logging
* Simplified Copying interface - not much value in having all the
complex builder pattern here it seems, might as well use a simple
object.

## Testing
* Generate SQLite DBs in memory on the fly to validate just what we need
* Use `insta` for validating DB content

There is now a function `dump(connection) -> Vec<Entry>` to dump the
content of the entire SQLite DB into text with `serde`. At many steps
through the testing, the DB content is validated with the corresponding
.snap file with `insta` crate (which makes this process mega-simple,
including a simple way to "bless" (update) any changes).

## Discovered bugs
* Seems like normalized files do not get copied properly - they contain
extras that should be removed.
2023-10-10 11:10:17 -04:00
..
.sqlx Add metadat copy/apply-diff, new testing framework (#921) 2023-10-10 11:10:17 -04:00
src Add metadat copy/apply-diff, new testing framework (#921) 2023-10-10 11:10:17 -04:00
tests Add metadat copy/apply-diff, new testing framework (#921) 2023-10-10 11:10:17 -04:00
.env Add .mbtiles support (#549) 2023-01-09 00:10:23 -05:00
Cargo.toml Add metadat copy/apply-diff, new testing framework (#921) 2023-10-10 11:10:17 -04:00
README.md mbtiles: remove tls features, CI streamlining (#908) 2023-09-29 20:40:32 -04:00

martin-mbtiles

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

A library to help tile servers like Martin work with MBTiles files. When using as a lib, you may want to disable default features (i.e. the unused "cli" feature).

This crate also has a small utility that allows users to interact with the *.mbtiles files from the command line. See tools documentation for more information.

Development

Any changes to SQL commands require running of just prepare-sqlite. This will install cargo sqlx command if it is not already installed, and update the ./sqlx-data.json file.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.