Commit Graph

175 Commits

Author SHA1 Message Date
Yuri Astrakhan
b832bb22f4
Upgrade to Rustls 0.22 (#1136)
Fix #1036
2024-01-17 01:42:11 +00:00
Yuri Astrakhan
e3821b8d78 better bench test 2023-12-27 14:53:12 -05:00
Yuri Astrakhan
2def6288f1
PMTiles cache, refactor file configs, modularize (#1094)
* Make it possible to have configuration specific to the file-based
config sections: pmtiles, mbtiles, and sprites.
* Implement PMTiles directory cache shared between all pmtiles (both
http and local), with configurable max cache size (in MB), or 0 to
disable. Defaults to 32MB (?)
* PMTiles now share web client instance, which optimizes connection
reuse in case multiple pmtiles reside on the same host
* Major refactoring to allow modular reuse, enabling the following build
features:
    * **postgres** - enable PostgreSQL/PostGIS tile sources
    * **pmtiles** - enable PMTile tile sources
    * **mbtiles** - enable MBTile tile sources
    * **fonts** - enable font sources
    * **sprites** - enable sprite sources
* Use justfile in the CI

Fixes #1093
2023-12-25 05:52:04 +00:00
Yuri Astrakhan
7ff2f5105a bump deps and lock 2023-12-24 23:50:37 -05:00
Yuri Astrakhan
f13c3f7514
Improve mbtiles update, update min/max zoom on martin-cp (#1096)
* `mbtiles update` now allows different types of zoom updates - reset to
content, grow only, or skip (dry run)
* `martin-cp` will now update (grow-only) metadata zooms

Addresses a few concerns in the #1081
2023-12-24 17:30:45 +08:00
Yuri Astrakhan
ea2b934d70 update MSRV 2023-12-22 22:56:22 -05:00
Yuri Astrakhan
1a8e7c89a4
Implement http pmtiles (#991)
PMTiles is a web-optimized format, allowing the actual file to be read
with HTTP range requests. Supporting this use case instantly allows
Martin to function as a lambda executable accessing PMTiles, but without
any significant investment into devops or hosting large file.

PMTiles config now also allows `http` and `https` protocol.

```
# Publish PMTiles files
pmtiles:
  paths:
    # specific pmtiles file will be published as mypmtiles source
    # (use last portion of the URL without extension)
    - http://example.org/path/to/mypmtiles.pmtiles
  sources:
    # named source matching source name to a single file
    pm-src1: https://example.org/path/to/some_pmtiles.pmtiles
 ```

fixes #884

---------

Co-authored-by: Kyle Slugg-Urbino <35903887+kyleslugg@users.noreply.github.com>
2023-12-22 06:01:50 +00:00
Yuri Astrakhan
fc15e0da5e Preparing release, version bump 2023-12-18 20:24:43 -05:00
Yuri Astrakhan
5a0f4c2d11 Update deadpool-postgres, lock 2023-12-15 18:40:56 -05:00
Yuri Astrakhan
886358e93f
Fix bbox to xyz roundtrip computation (#1059)
Add `tile-grid` as a dependency to use its webmercator tile math.

---------

Co-authored-by: sharkAndshark <zhangyijunmetro@hotmail.com>
2023-12-15 06:11:31 +00:00
Yuri Astrakhan
b97f1ccdbe Move utils to v0.2, MAX_ZOOM 2023-12-09 10:19:49 -05:00
Yuri Astrakhan
dc5fef9c65 bump lock 2023-12-07 02:26:09 -05:00
Yuri Astrakhan
713a51b74d
Upgarde to v0.10 spreet crate, cleanup SpreetResult (#984) 2023-11-29 19:09:05 -05:00
Yuri Astrakhan
999179029b Prepare for release 2023-11-20 01:51:08 -05:00
Yuri Astrakhan
f88fd10aa8
Add martin-cp tool to bulk-copy tiles from any Martin-supported sources (#1011)
This adds a new utility called `martin-cp` that allows copying any
number of tiles from a single source (or a composite source) to an
mbtiles file.

`martin-cp` is a tool for generating tiles in bulk, and save retrieved
tiles into a new or an existing MBTiles file. It can be used to generate
tiles for a large area or multiple areas. If multiple areas overlap, it
will generate tiles only once. `martin-cp` supports the same
configuration file and CLI arguments as Martin server, so it can support
all sources and even combining sources.
2023-11-20 06:27:51 +00:00
Yuri Astrakhan
140ed25679
mbtiles improvements, minor changes (#1013)
# MBTiles
* New `--agg-hash (update|verify|off)` flag replaces
`--update-agg-tiles-hash` (still supported, but not shown in the help
screen). This allows bypassing aggregate hash validation entirely,
without either updating or validating it.
* Simplify MBTiles SQL generation
* MBTiles now uses faster `1 << zoom` everywhere, and a dedicated TMS
inversion fn
* split up metadata insert and delete into separate fn
* consolidated schema initialization
* ensure db settings (like pragma) are always reset on new files

# Other
* Always sort JSON-serialized keys for consistency
  * this affects `/catalog` key ordering, but content is the same
* Minor code cleanup
2023-11-19 10:06:37 +00:00
Lucas
a3b2bfd705
Minor cleanup (#1008)
- Add separators to long literal.
- Use first() instead of get(0)
- Move some SQL-making code to their own functions
- Minor mathematics and rounding cleanup

---------

Co-authored-by: Yuri Astrakhan <YuriAstrakhan@gmail.com>
2023-11-17 18:55:05 +00:00
Yuri Astrakhan
d8e386fb0c
Use Rust's 1.74 cargo lint section (#1006)
https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html
2023-11-17 08:29:25 +08:00
Yuri Astrakhan
66eb925e47 bump dep, update pmtiles 2023-11-15 18:36:21 -05:00
Lucas
0398336114
Add mbtiles statistics command (#986)
- [x] Add tile statistics to mbtiles tools
- [x] Add test
- [x] Use 4326 instead of 3857 for tile bounds
- [x] Add document
- [x] Use size-format to prettify output 
- [x]  Statistics  struct Refactor
- [x] Cleanup and reformat

Closes #964 

---------

Co-authored-by: Yuri Astrakhan <yuriastrakhan@gmail.com>
2023-11-13 06:03:40 +00:00
Yuri Astrakhan
fad89d742f
simplify serde optional handling (#998) 2023-11-12 22:22:04 -05:00
Yuri Astrakhan
fe05faaa20 bump lock 2023-11-09 22:28:15 -05:00
Yuri Astrakhan
f7c69f8302
Minor cleanup and just reorg (#992)
Only run git push diff on linux to make development on non-linux easier,
and a few preparations for pmtiles over http serving

Fixes #855
2023-11-08 19:46:23 -05:00
Yuri Astrakhan
47b3106ac6
Rename martin-mbtiles crate to mbtiles (#976)
This simplifies usage as both a crate and as a tool
2023-10-28 08:50:49 +00:00
Yuri Astrakhan
9b112ae7b9
Implement dynamic font support /font/<name>/<start>-<end> (#755)
This implements dynamic font protobuf generation, allowing users to
request font ranges on the fly, and combining them in any order, e.g.
`Font1,Font2,Font3`, same as with sprites and tiles

This is a first iteration, without any multithreading support. In
theory, this could be done far faster by generating SDFs with multiple
threads.

### Current process
* during init, figure out all glyphs available in each font, and store
them as a bitset
* during request:
* combine requested bitsets to figure out which glyph should come from
which font file
* load those glyphs from files (using a single instance of the freetype
lib)
  * convert them to SDFs and package them into a protobuf

---------

Co-authored-by: Lucas <zhangyijunmetro@hotmail.com>
2023-10-28 05:10:48 +00:00
Yuri Astrakhan
502413aecb
Fix martin integration tests (#952)
Turns out some integration tests were not running after `martin` was
moved to subdir
2023-10-20 11:40:08 +08:00
Yuri Astrakhan
a0a3f49408 remove unused actix crate dep 2023-10-17 23:05:14 -04:00
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
Yuri Astrakhan
f4bb5c7c27 bump versions 2023-10-10 02:57:59 -04:00
Yuri Astrakhan
0459d3f748
add encoding=UTF8 pragma, refactoring (#919) 2023-10-03 21:20:41 -04:00
Yuri Astrakhan
6b7bcabe49
Cleanup mbtiles, rename TileCopierOptions, testing (#916)
* Rename `TileCopierOptions` -> `TileCopier`
* remove a few un-needed sqlite open to detect mbtiles type
* move `open_and_detect_type` to `MBTiles`
* add `attach_to` to `MBTiles`
* move various table creation fn to mbtiles_queries file
* a few sql format
2023-10-01 23:28:43 -04:00
Yuri Astrakhan
8d7204c53d
Switch to Rustls (#474)
Fixes #471
2023-09-30 17:58:49 +08:00
Yuri Astrakhan
cd584faa30
mbtiles: remove tls features, CI streamlining (#908) 2023-09-29 20:40:32 -04:00
Yuri Astrakhan
826c26367d update lock 2023-09-26 14:24:56 -04:00
Yuri Astrakhan
2bef7c0e4b update lock, bump pmtiles, switch to codecov@v3 2023-09-18 21:32:22 -04:00
dependabot[bot]
7dea9167e1
chore(deps): Bump json-patch from 1.0.0 to 1.1.0 (#876)
Bumps [json-patch](https://github.com/idubrov/json-patch) from 1.0.0 to
1.1.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="50a220ab4d"><code>50a220a</code></a>
chore: Release json-patch version 1.1.0</li>
<li><a
href="d3a5a121bb"><code>d3a5a12</code></a>
fix: tests and suggestion</li>
<li><a
href="227dd997c3"><code>227dd99</code></a>
refactor: do not use recursion but keep a stack</li>
<li><a
href="670981783d"><code>6709817</code></a>
Updating codecov and fixing the test.</li>
<li><a
href="0e1f7aab17"><code>0e1f7aa</code></a>
Use utoipa support for serde_json::Value</li>
<li>See full diff in <a
href="https://github.com/idubrov/json-patch/compare/v1.0.0...v1.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=json-patch&package-manager=cargo&previous-version=1.0.0&new-version=1.1.0)](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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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-09-12 11:03:26 -04:00
Yuri Astrakhan
b5e81a8604 update lock 2023-09-06 00:30:40 -04:00
rstanciu
875a942fcf
Add integrity and global hash check to validation (#851)
Co-authored-by: rstanciu <rstanciu@rivian.com>
2023-08-31 03:40:40 +00:00
Yuri Astrakhan
f5e633f3dd Update lock and bump sqlite-hashes 2023-08-27 23:26:51 -04:00
Yuri Astrakhan
1131c28c99
cleanup func docs, lints (#842)
this also fixes new rust version lints
2023-08-28 09:07:29 +08:00
Lucas
b3fb720a94
Retrieve function source description from comments (#829)
If a PostgreSQL function has an SQL comment, it will try to parse as
JSON and use its values to override the auto-generated TileJSON. It is
recommended to use this form when creating comments to ensure valid JSON
values.

```sql
DO $do$ BEGIN
    EXECUTE 'COMMENT ON FUNCTION YOUR_FUNCTION (ARG1_TYPE,ARG2_TYPE,..ARGN_TYPE) IS $tj$' || $$
    {
      "description": "description override",
      ...
    }
    $$::json || '$tj$';
END $do$;
```

Partially implements #822
2023-08-27 16:46:56 +00:00
dependabot[bot]
9a5ba73b31
chore(deps): Bump tokio from 1.31.0 to 1.32.0 (#818)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.31.0 to 1.32.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.32.0</h2>
<h3>Fixed</h3>
<ul>
<li>sync: fix potential quadradic behavior in
<code>broadcast::Receiver</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5925">#5925</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>process: stabilize <code>Command::raw_arg</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5930">#5930</a>)</li>
<li>io: enable awaiting error readiness (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5781">#5781</a>)</li>
</ul>
<h3>Unstable</h3>
<ul>
<li>rt(alt): improve the scalability of alt runtime as the number of
cores grows (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5935">#5935</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/5925">#5925</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5925">tokio-rs/tokio#5925</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5930">#5930</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5930">tokio-rs/tokio#5930</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5781">#5781</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5781">tokio-rs/tokio#5781</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5935">#5935</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5935">tokio-rs/tokio#5935</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a7d52c2fed"><code>a7d52c2</code></a>
chore: prepare Tokio v1.32.0 release (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5937">#5937</a>)</li>
<li><a
href="f5f2b58b8d"><code>f5f2b58</code></a>
rt: improve docs for Builder::max_blocking_threads (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5793">#5793</a>)</li>
<li><a
href="718dcc8dff"><code>718dcc8</code></a>
docs: BytesMut::with_capacity does not guarantee exact capacity (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5870">#5870</a>)</li>
<li><a
href="10e141d211"><code>10e141d</code></a>
io: add <code>Ready::ERROR</code> and report error readiness (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5781">#5781</a>)</li>
<li><a
href="6e42c26c80"><code>6e42c26</code></a>
rt(alt): tweak some constants to improve scalability (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5935">#5935</a>)</li>
<li><a
href="82bef00db4"><code>82bef00</code></a>
io: minor tweaks to <code>AsyncFd</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5932">#5932</a>)</li>
<li><a
href="40633fc678"><code>40633fc</code></a>
readme: list previous LTS releases (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5931">#5931</a>)</li>
<li><a
href="3dd5f7ae2e"><code>3dd5f7a</code></a>
sync: move broadcast waiters into separate list before waking (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5925">#5925</a>)</li>
<li><a
href="2c92cad9db"><code>2c92cad</code></a>
process: stabilize <code>Command::raw_arg</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5930">#5930</a>)</li>
<li><a
href="197757d440"><code>197757d</code></a>
streams: create StreamMock for testing Streams (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5915">#5915</a>)</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.31.0...tokio-1.32.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.31.0&new-version=1.32.0)](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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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-08-17 00:14:40 -04:00
rstanciu
720b682b7e
Add flat hashing table format (#808)
* Add `MbtType::FlatWithHash`
* Support copying, diffing and applying diffs to and from any
`MbtTypes`s
* Support validating tile data if hash is contained in `*.mbtiles` file
(i.e it is of `MbtType::FlatWithHash` or `MbtType::Normalized`)

---------

Co-authored-by: rstanciu <rstanciu@rivian.com>
Co-authored-by: Yuri Astrakhan <yuriastrakhan@gmail.com>
2023-08-16 10:22:01 -07:00
dependabot[bot]
7b765af89d
chore(deps): Bump tokio from 1.30.0 to 1.31.0 (#806)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.30.0 to 1.31.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.31.0</h2>
<h3>Fixed</h3>
<ul>
<li>io: delegate <code>WriteHalf::poll_write_vectored</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5914">#5914</a>)</li>
</ul>
<h3>Unstable</h3>
<ul>
<li>rt(unstable): fix memory leak in unstable next-gen scheduler
prototype (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5911">#5911</a>)</li>
<li>rt: expose mean task poll time metric (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5927">#5927</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/5914">#5914</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5914">tokio-rs/tokio#5914</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5911">#5911</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5911">tokio-rs/tokio#5911</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5927">#5927</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5927">tokio-rs/tokio#5927</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8b8005ebdd"><code>8b8005e</code></a>
chore: prepare Tokio v1.31.0 release (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5928">#5928</a>)</li>
<li><a
href="6cb106c353"><code>6cb106c</code></a>
rt: unstable EWMA poll time metric (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5927">#5927</a>)</li>
<li><a
href="dd23f08c3a"><code>dd23f08</code></a>
rt(alt): fix memory leak and increase max preemption when running Loom
CI tes...</li>
<li><a
href="5d29bdfb0c"><code>5d29bdf</code></a>
io: delegate <code>WriteHalf::poll_write_vectored</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5914">#5914</a>)</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.30.0...tokio-1.31.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.30.0&new-version=1.31.0)](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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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-08-15 14:44:01 -04:00
dependabot[bot]
d878189881
chore(deps): Bump tokio from 1.29.1 to 1.30.0 (#798)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.29.1 to 1.30.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.30.0</h2>
<h1>1.30.0 (August 9, 2023)</h1>
<p>This release bumps the MSRV of Tokio to 1.63. (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5887">#5887</a>)</p>
<h3>Changed</h3>
<ul>
<li>tokio: reduce LLVM code generation (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5859">#5859</a>)</li>
<li>io: support <code>--cfg mio_unsupported_force_poll_poll</code> flag
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5881">#5881</a>)</li>
<li>sync: make <code>const_new</code> methods always available (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5885">#5885</a>)</li>
<li>sync: avoid false sharing in mpsc channel (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5829">#5829</a>)</li>
<li>rt: pop at least one task from inject queue (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5908">#5908</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>sync: add <code>broadcast::Sender::new</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5824">#5824</a>)</li>
<li>net: implement <code>UCred</code> for espidf (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5868">#5868</a>)</li>
<li>fs: add <code>File::options()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5869">#5869</a>)</li>
<li>time: implement extra reset variants for <code>Interval</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5878">#5878</a>)</li>
<li>process: add <code>{ChildStd*}::into_owned_{fd, handle}</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5899">#5899</a>)</li>
</ul>
<h3>Removed</h3>
<ul>
<li>tokio: removed unused <code>tokio_*</code> cfgs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5890">#5890</a>)</li>
<li>remove build script to speed up compilation (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5887">#5887</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>sync: mention lagging in docs for <code>broadcast::send</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5820">#5820</a>)</li>
<li>runtime: expand on sharing runtime docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5858">#5858</a>)</li>
<li>io: use vec in example for <code>AsyncReadExt::read_exact</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5863">#5863</a>)</li>
<li>time: mark <code>Sleep</code> as <code>!Unpin</code> in docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5916">#5916</a>)</li>
<li>process: fix <code>raw_arg</code> not showing up in docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5865">#5865</a>)</li>
</ul>
<h3>Unstable</h3>
<ul>
<li>rt: add runtime ID (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5864">#5864</a>)</li>
<li>rt: initial implementation of new threaded runtime (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5823">#5823</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/5820">#5820</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5820">tokio-rs/tokio#5820</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5823">#5823</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5823">tokio-rs/tokio#5823</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5824">#5824</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5824">tokio-rs/tokio#5824</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5829">#5829</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5829">tokio-rs/tokio#5829</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5858">#5858</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5858">tokio-rs/tokio#5858</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5859">#5859</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5859">tokio-rs/tokio#5859</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5863">#5863</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5863">tokio-rs/tokio#5863</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5864">#5864</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5864">tokio-rs/tokio#5864</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5865">#5865</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5865">tokio-rs/tokio#5865</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5868">#5868</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5868">tokio-rs/tokio#5868</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5869">#5869</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5869">tokio-rs/tokio#5869</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4c220af777"><code>4c220af</code></a>
chore: prepare Tokio v1.30.0 release (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5917">#5917</a>)</li>
<li><a
href="0a631f88e8"><code>0a631f8</code></a>
process: add <code>{ChildStd*}::into_owned_{fd, handle}</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5899">#5899</a>)</li>
<li><a
href="ee44dc98d8"><code>ee44dc9</code></a>
ci: fix MIRI tests (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5919">#5919</a>)</li>
<li><a
href="51cffbb74f"><code>51cffbb</code></a>
time: mark <code>Sleep</code> as <code>!Unpin</code> in docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5916">#5916</a>)</li>
<li><a
href="8832e936b1"><code>8832e93</code></a>
rt(alt): fix a number of concurrency bugs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5907">#5907</a>)</li>
<li><a
href="dbda2045f1"><code>dbda204</code></a>
time: implement extra reset variants for <code>Interval</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5878">#5878</a>)</li>
<li><a
href="7c54fdce3e"><code>7c54fdc</code></a>
rt: pop at least one task from inject queue (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5908">#5908</a>)</li>
<li><a
href="38d1bcd9df"><code>38d1bcd</code></a>
sync: avoid false sharing in mpsc channel (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5829">#5829</a>)</li>
<li><a
href="52e6510215"><code>52e6510</code></a>
runtime: fix flaky test <code>wake_while_rt_is_dropping</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5905">#5905</a>)</li>
<li><a
href="e5e88551d2"><code>e5e8855</code></a>
Update CI config (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5893">#5893</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.29.1...tokio-1.30.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.29.1&new-version=1.30.0)](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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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-08-10 15:50:13 -04:00
baishikele
e1f7436d62
Debian package (#730)
Add deb package  by [cargo-deb](https://crates.io/crates/cargo-deb)
- [ ] add deb package metadata
- [ ] more research on systemd integration

To inspect the package:
```shell
# install cargo-deb dependices
sudo apt install dpkg
sudo apt install dpkg-dev
sudo apt install liblzma-dev

cargo install cargo-deb
cd martin
cargo deb
The Debian package will be created in `target/debian/martin_0.8.7_amd64.deb` . 
```

To decompress this package:
```shell
dpkg -x martin_0.8.7_amd64.deb path_of_decompress  
```

---------

Co-authored-by: Yuri Astrakhan <yuriastrakhan@gmail.com>
2023-07-10 18:38:48 +00:00
Yuri Astrakhan
4664d5ad8a update lock, minor toml sort cleanup 2023-07-05 20:56:23 -04:00
Yuri Astrakhan
144e10ff20
Upgrade sqlx to v0.7 (#743)
This is mostly a noop, just updating to the new way of storing cached
queries and a few other changes per
https://github.com/launchbadge/sqlx/blob/main/CHANGELOG.md#070---2023-06-30

Note that this uses some of the code from #729 (thanks @upsicleclown !)

A minor unrelated change - a reformat of `martin/release.toml`
2023-07-04 08:05:23 -04:00
Pirmin Kalberer
aabcb0aa0a
Add sqlx-rustls support (#720)
I'd like to add optional rustls support for SQLx. This PR implements the
required features, but tests using `--all-features` fail, because
runtime selection features are not additive. I didn't find a solution
apart from avoiding `--all-features`.

---------

Co-authored-by: Yuri Astrakhan <YuriAstrakhan@gmail.com>
2023-07-03 21:29:44 +00:00
dependabot[bot]
8f74a6881a
chore(deps): Bump tokio from 1.29.0 to 1.29.1 (#736)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.29.0 to 1.29.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.29.1</h2>
<h3>Fixed</h3>
<ul>
<li>rt: fix nesting two <code>block_in_place</code> with a
<code>block_on</code> between (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5837">#5837</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/5837">#5837</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/5837">tokio-rs/tokio#5837</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1b1b9dc7e3"><code>1b1b9dc</code></a>
chore: prepare Tokio v1.29.1 release</li>
<li><a
href="012c848401"><code>012c848</code></a>
rt: fix nesting block_in_place with block_on (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/5837">#5837</a>)</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.29.0...tokio-1.29.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.29.0&new-version=1.29.1)](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-30 03:36:18 +00:00