Commit Graph

179 Commits

Author SHA1 Message Date
Josh Lee
9f9f18163c
Add AWS Lambda support (#1127)
This adds the lambda-web crate to adapt the actix App to speak to Lambda
by way of the lambda_runtime crate.

AWS Lambda has native support for scripting languages to
execute a function directly; compiled languages must embed a runtime to
fetch incoming events from Lambda and post the responses. This detects
the environment variables to start up in Lambda mode instead of the
normal HTTP server, and is added as an optional feature.

Lambda has five (!) distinct ways of routing HTTP requests to a
function; this supports some of them. (Specifically, the most obvious
way to do this is with a Function URL, which is newest and simplest, and
perhaps with CloudFront, which speaks to the Function URL and not Lambda
directly.)

The error handling could probably be refined, I was just trying to get
this to compile.

(Supported: API Gateway HTTP API with payload format version 2.0; API
Gateway REST API; Lambda function URLs / Not supported: API Gateway HTTP
API with payload format version 1.0; Application Load Balancer)

Necessary for #1102 to be able to run the released packages directly,
and only having to configure the appropriate environment.

---------

Co-authored-by: Yuri Astrakhan <yuriastrakhan@gmail.com>
2024-02-01 18:56:40 +00:00
Yuri Astrakhan
74c67a3812
Use ORDERBY in calc_agg_tiles_hash - SQLite v3.44 (#1156)
Require SQLite v3.44+ ORDER BY clause inside aggregate function instead
of the windowing one - might solve out of memory issues reported by
users - see #1154
2024-01-27 21:48:54 -05:00
Yuri Astrakhan
7c75a6dee6 Bump dependencies 2024-01-20 19:52:09 -05:00
Yuri Astrakhan
ecdeb8bf21
Use Rust 1.74 std::io::Error::other fn (#1009) 2024-01-17 02:18:14 +00:00
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