Merge branch 'dev'

This commit is contained in:
NGnius (Graham) 2023-08-28 17:13:28 -04:00
commit decc0cd73d
72 changed files with 2711 additions and 1424 deletions

View file

@ -1,12 +1,12 @@
# PowerTools
<!-- TODO Update badges for new git repo location -->
[![Decky store](https://img.shields.io/badge/dynamic/json?color=blue&label=release&query=%24%5B%3F%28%40.name%3D%3D%27PowerTools%27%29%5D.versions%5B0%5D.name&url=https%3A%2F%2Fplugins.deckbrew.xyz%2Fplugins&style=flat-square)](https://plugins.deckbrew.xyz/)
[![Custom store](https://img.shields.io/badge/dynamic/json?color=blue&label=preview&query=%24%5B%3F%28%40.name%3D%3D%27PowerTools%27%29%5D.versions%5B0%5D.name&url=https%3A%2F%2Fnot-decky-alpha.ngni.us%2Fplugins&style=flat-square)](https://github.com/NGnius/PowerTools/wiki)
[![GitHub package.json version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgit.ngni.us%2FNG-SD-Plugins%2FPowerTools%2Fraw%2Fbranch%2Fmain%2Fpackage.json&query=%24.version&style=flat-square&label=local&cacheSeconds=600)](https://git.ngni.us/NG-SD-Plugins/PowerTools/src/branch/main/package.json)
[![Liberapay](https://img.shields.io/liberapay/patrons/NGnius?style=flat-square)](https://liberapay.com/NGnius)
[![GitHub](https://img.shields.io/github/license/NGnius/PowerTools?style=flat-square)](https://github.com/NGnius/PowerTools/blob/main/LICENSE)
[![GitHub package.json version](https://img.shields.io/github/package-json/v/NGnius/PowerTools?style=flat-square)](https://github.com/NGnius/PowerTools/blob/main/package.json)
[![GitHub package.json dependency version (prod)](https://img.shields.io/github/package-json/dependency-version/NGnius/PowerTools/decky-frontend-lib?style=flat-square)](https://github.com/NGnius/PowerTools/blob/main/pnpm-lock.yaml)
[![GitHub](https://img.shields.io/badge/GPL--3.0-orange?style=flat-square&label=license&cacheSeconds=600)](https://github.com/NGnius/PowerTools/blob/main/LICENSE)
[![GitHub package.json dependency version (local)](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgit.ngni.us%2FNG-SD-Plugins%2FPowerTools%2Fraw%2Fbranch%2Fmain%2Fpackage.json&query=%24..%5B'decky-frontend-lib'%5D&style=flat-square&label=decky-frontend-lib&cacheSeconds=600)](https://github.com/NGnius/PowerTools/blob/main/pnpm-lock.yaml)
![plugin_demo](./assets/ui.png)
@ -24,17 +24,19 @@ You will need that installed for this plugin to work.
- Display supplementary battery info
- Keep settings between restarts (stored in `~/.config/powertools/<gameId>.json`)
This plugin is tested on Steam Deck, but is designed to work on other Linux devices as well. Unfortunately I am currently unable to test on other devices.
## Install
Please use Decky's [built-in store](https://beta.deckbrew.xyz/) to install official releases.
If you're an advanced user, and/or would like to use an in-development version, feel free to build PowerTools yourself.
Please use Decky's [built-in store](https://plugins.deckbrew.xyz/) to install official releases.
If you want to test unstable versions, use [my custom store](https://not-decky-alpha.ngni.us/plugins). If you would like to use an in-development version, feel free to build PowerTools yourself.
## Build
0. Requirements: a functioning Rust toolchain for x86_64-unknown-linux-musl, npm, and some tech literacy
0. Requirements: a functioning Rust toolchain for x86_64-unknown-linux-gnu (or -musl), pnpm, and some tech literacy
1. In a terminal, navigate to the backend directory of this project and run `./build.sh`
2. In the root of this project, run `npm run build`
3. Transfer the project (especially dist/ and bin/) to a folder in your Steam Deck's homebrew plugins directory
2. In the root of this project, run `pnpm run build`
3. Transfer the project (especially dist/ and bin/) to a folder in your Steam Deck's `~/homebrew/plugins` directory
## License

View file

@ -7,9 +7,9 @@
viewBox="0 0 483.77954 483.77954"
version="1.1"
id="svg5"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="icon.svg"
inkscape:export-filename="/home/ngnius/Documents/git-repos/PowerTools/extras/icon.png"
inkscape:export-filename="logo.png"
inkscape:export-xdpi="203.2"
inkscape:export-ydpi="203.2"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
@ -30,16 +30,18 @@
width="241.88977px"
inkscape:snap-object-midpoints="false"
inkscape:zoom="1.4142136"
inkscape:cx="250.66935"
inkscape:cy="188.0904"
inkscape:window-width="1280"
inkscape:window-height="1007"
inkscape:window-x="1280"
inkscape:cx="199.05056"
inkscape:cy="246.07316"
inkscape:window-width="2560"
inkscape:window-height="998"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-intersection-paths="true"
inkscape:snap-midpoints="true" />
inkscape:snap-midpoints="true"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1" />
<defs
id="defs2" />
<g
@ -47,18 +49,25 @@
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#000000;fill-opacity:1;fill-rule:evenodd"
style="fill:#000000;fill-opacity:1"
id="rect1945"
width="100"
height="10"
x="349.94388"
y="108.70168" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.03075"
id="rect31"
width="200"
width="212.49023"
height="100"
x="71.855446"
x="59.365211"
y="63.752789" />
<circle
style="fill:#000000;fill-opacity:1"
style="fill:#000000;fill-opacity:1;stroke-width:0.5"
id="path1244"
cx="71.855446"
cy="113.75279"
r="50" />
cx="59.355446"
cy="88.752792"
r="25" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1"
@ -76,24 +85,24 @@
d="m 355.89305,113.75249 c 0,9.92465 -77.355,54.58558 -85.95,49.62325 -8.595,-4.96232 -8.595,-94.284182 0,-99.246508 8.595,-4.962325 85.95,39.698608 85.95,49.623258 z"
inkscape:transform-center-x="-16.053868"
inkscape:transform-center-y="-0.5295475" />
<ellipse
style="fill:#808080;stroke-width:1.4865"
id="path591"
cx="334.35544"
cy="113.75249"
rx="50"
ry="20" />
<path
style="stroke:#000000;stroke-width:1.10309px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 72,164 v 150 l 120.000004,-150 z"
style="stroke:none;stroke-width:0.530701px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill:#808080"
d="m 135.67646,163.69764 v 74.33643 l 56.04644,-74.33643 z"
id="path1655" />
<rect
style="fill:#000000;fill-opacity:1"
style="fill:#000000;fill-opacity:1;stroke-width:0.790569"
id="rect1759"
width="150"
height="100"
width="125"
height="75"
x="71.855446"
y="313.75278" />
<rect
style="fill:#000000;fill-opacity:1"
id="rect1945"
width="100"
height="10"
x="349.94388"
y="108.70168" />
y="339" />
<rect
style="fill:#000000;fill-opacity:1;stroke-width:1.77271"
id="rect2155"
@ -101,5 +110,198 @@
height="250.24721"
x="71.855446"
y="163.75279" />
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.5"
id="circle277"
cx="59.355446"
cy="138.75279"
r="25" />
<rect
style="fill:#000000"
id="rect398"
width="25"
height="50"
x="34.355446"
y="88.752792" />
<rect
style="fill:#000000;stroke-width:0.820266"
id="rect414"
width="56.144562"
height="25.567711"
x="135.85544"
y="163.4323" />
<ellipse
style="fill:#000000"
id="path416"
cx="71.855446"
cy="357.75"
rx="22.669472"
ry="18.75" />
<ellipse
style="fill:#000000"
id="path416-3"
cx="71.855446"
cy="395.25"
rx="22.669472"
ry="18.75" />
<rect
style="fill:#000000"
id="rect458"
width="22.669472"
height="37.5"
x="49.185974"
y="357.75" />
<ellipse
style="fill:#000000"
id="path416-6"
cx="196.85544"
cy="357.75"
rx="22.669472"
ry="18.75" />
<ellipse
style="fill:#000000"
id="path416-3-7"
cx="196.85544"
cy="395.25"
rx="22.669472"
ry="18.75" />
<rect
style="fill:#000000"
id="rect458-5"
width="22.669472"
height="37.5"
x="196.85544"
y="357.75" />
<rect
style="fill:#000000;stroke-width:0.987024"
id="rect901"
width="48.7108"
height="40"
x="284.37106"
y="93.752487" />
<circle
style="fill:#808080;stroke:none;stroke-width:1.49999"
id="path1656"
cx="64.860382"
cy="81.150871"
r="7.5" />
<circle
style="fill:#808080;stroke:none;stroke-width:1.49999"
id="path1656-3"
cx="266.36029"
cy="81.150871"
r="7.5" />
<rect
style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke-width:0.84968"
id="rect31-5"
width="180.49001"
height="80"
x="75.365326"
y="73.752792" />
<rect
style="fill:#808080;stroke:#808080;stroke-width:3.44828;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect1732"
width="21.551723"
height="21.551723"
x="48.579582"
y="94.675819" />
<rect
style="fill:#808080;stroke:#808080;stroke-width:3.44828;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect1732-9"
width="21.551723"
height="21.551723"
x="261.08936"
y="94.675819" />
<g
id="g2413"
transform="translate(7.8603821,-16.500301)">
<rect
style="fill:#808080;stroke:none"
id="rect1798"
width="10"
height="5"
x="52"
y="138.75279" />
<circle
style="fill:#808080;stroke:none"
id="path1800"
cx="52"
cy="141.25279"
r="2.5" />
<circle
style="fill:#808080;stroke:none"
id="path1800-2"
cx="62"
cy="141.25279"
r="2.5" />
</g>
<g
id="g2413-1"
transform="translate(209.36029,-16.500301)">
<rect
style="fill:#808080;stroke:none"
id="rect1798-2"
width="10"
height="5"
x="52"
y="138.75279" />
<circle
style="fill:#808080;stroke:none"
id="path1800-7"
cx="52"
cy="141.25279"
r="2.5" />
<circle
style="fill:#808080;stroke:none"
id="path1800-2-0"
cx="62"
cy="141.25279"
r="2.5" />
</g>
<g
id="g2678">
<rect
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect2563"
width="15"
height="5"
x="39.355446"
y="75.747589" />
<rect
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect2601"
width="5"
height="15"
x="44.355446"
y="70.747589" />
</g>
<g
id="g2674"
transform="translate(-1.5377998e-5,1.6793823)">
<circle
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path2605"
cx="279.36523"
cy="76.568207"
r="2.5" />
<circle
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path2605-9"
cx="284.36523"
cy="71.574265"
r="2.5" />
<circle
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path2605-3"
cx="289.36523"
cy="76.568207"
r="2.5" />
<circle
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path2605-6"
cx="284.36523"
cy="81.562149"
r="2.5" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 18 KiB

384
assets/sticker.svg Normal file
View file

@ -0,0 +1,384 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="512"
height="512"
viewBox="0 0 512 512"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="sticker.svg"
inkscape:export-filename="../../../../Pictures/Projects/DeckyLoader/powertools-sticker.png"
inkscape:export-xdpi="384"
inkscape:export-ydpi="384"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="true"
inkscape:document-units="px"
showgrid="false"
units="mm"
width="241.88977px"
inkscape:snap-object-midpoints="false"
inkscape:zoom="1.4142136"
inkscape:cx="78.135297"
inkscape:cy="238.29498"
inkscape:window-width="2560"
inkscape:window-height="998"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-intersection-paths="true"
inkscape:snap-midpoints="true"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="fill:#ff00ff;stroke-width:1.06004"
id="path169-0"
cx="256.33051"
cy="257.39117"
r="256" />
<rect
style="fill:#ff00ff;stroke-width:1.4133"
id="rect4535-6"
width="512"
height="510.60883"
x="0"
y="0.69558716" />
<rect
style="fill:#ff00ff"
id="rect4535"
width="256.33051"
height="510.60883"
x="0"
y="1.3911743" />
<circle
style="fill:#ff00ff;stroke-width:0.621117"
id="path169-6-2"
cx="256"
cy="256"
r="150" />
<circle
style="fill:#ffffff;stroke-width:0.53002"
id="path169-6"
cx="256"
cy="256"
r="128" />
<circle
style="fill:#ffffff;stroke-width:1.06004"
id="path169"
cx="256.33051"
cy="257.39117"
r="256" />
<g
id="g4192"
transform="matrix(0.84217934,0,0,0.84217934,111.88641,61.863508)">
<rect
style="fill:#000000;fill-opacity:1"
id="rect1945"
width="100"
height="10"
x="278.91406"
y="100.3456" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.03075"
id="rect31"
width="212.49023"
height="100"
x="-11.664615"
y="55.396706" />
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.5"
id="path1244"
cx="-11.67438"
cy="80.396706"
r="25" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1"
id="path1353"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="298.59305"
sodipodi:cy="113.75249"
sodipodi:r1="57.299999"
sodipodi:r2="60"
sodipodi:arg1="0"
sodipodi:arg2="0"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="m 355.89305,113.75249 c 0,9.92465 -77.355,54.58558 -85.95,49.62325 -8.595,-4.96232 -8.595,-94.284182 0,-99.246508 8.595,-4.962325 85.95,39.698608 85.95,49.623258 z"
inkscape:transform-center-x="-16.053868"
inkscape:transform-center-y="-0.5295475"
transform="translate(-71.029826,-8.356084)" />
<ellipse
style="fill:#808080;stroke-width:1.4865"
id="path591"
cx="263.32562"
cy="105.3964"
rx="50"
ry="20" />
<path
style="fill:#808080;stroke:none;stroke-width:0.530701px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 64.646634,155.34156 v 74.33643 l 56.046436,-74.33643 z"
id="path1655" />
<rect
style="fill:#000000;fill-opacity:1;stroke-width:0.790569"
id="rect1759"
width="125"
height="75"
x="0.82561988"
y="330.64392" />
<rect
style="fill:#000000;fill-opacity:1;stroke-width:1.77271"
id="rect2155"
width="64"
height="250.24721"
x="0.82561988"
y="155.39671" />
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.5"
id="circle277"
cx="-11.67438"
cy="130.39671"
r="25" />
<rect
style="fill:#000000"
id="rect398"
width="25"
height="50"
x="-36.674381"
y="80.396706" />
<rect
style="fill:#000000;stroke-width:0.820266"
id="rect414"
width="56.144562"
height="25.567711"
x="64.825615"
y="155.07622" />
<ellipse
style="fill:#000000"
id="path416"
cx="0.82561988"
cy="349.39392"
rx="22.669472"
ry="18.75" />
<ellipse
style="fill:#000000"
id="path416-3"
cx="0.82561988"
cy="386.89392"
rx="22.669472"
ry="18.75" />
<rect
style="fill:#000000"
id="rect458"
width="22.669472"
height="37.5"
x="-21.843851"
y="349.39392" />
<ellipse
style="fill:#000000"
id="path416-6"
cx="125.82561"
cy="349.39392"
rx="22.669472"
ry="18.75" />
<ellipse
style="fill:#000000"
id="path416-3-7"
cx="125.82561"
cy="386.89392"
rx="22.669472"
ry="18.75" />
<rect
style="fill:#000000"
id="rect458-5"
width="22.669472"
height="37.5"
x="125.82561"
y="349.39392" />
<rect
style="fill:#000000;stroke-width:0.987024"
id="rect901"
width="48.7108"
height="40"
x="213.34123"
y="85.3964" />
<circle
style="fill:#808080;stroke:none;stroke-width:1.49999"
id="path1656"
cx="-6.1694441"
cy="72.794785"
r="7.5" />
<circle
style="fill:#808080;stroke:none;stroke-width:1.49999"
id="path1656-3"
cx="195.33046"
cy="72.794785"
r="7.5" />
<rect
style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke-width:0.84968"
id="rect31-5"
width="180.49001"
height="80"
x="4.3354998"
y="65.396706" />
<rect
style="fill:#808080;stroke:#808080;stroke-width:3.44828;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect1732"
width="21.551723"
height="21.551723"
x="-22.450243"
y="86.319733" />
<rect
style="fill:#808080;stroke:#808080;stroke-width:3.44828;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect1732-9"
width="21.551723"
height="21.551723"
x="190.05952"
y="86.319733" />
<g
id="g2413"
transform="translate(-63.169444,-24.856385)">
<rect
style="fill:#808080;stroke:none"
id="rect1798"
width="10"
height="5"
x="52"
y="138.75279" />
<circle
style="fill:#808080;stroke:none"
id="path1800"
cx="52"
cy="141.25279"
r="2.5" />
<circle
style="fill:#808080;stroke:none"
id="path1800-2"
cx="62"
cy="141.25279"
r="2.5" />
</g>
<g
id="g2413-1"
transform="translate(138.33046,-24.856385)">
<rect
style="fill:#808080;stroke:none"
id="rect1798-2"
width="10"
height="5"
x="52"
y="138.75279" />
<circle
style="fill:#808080;stroke:none"
id="path1800-7"
cx="52"
cy="141.25279"
r="2.5" />
<circle
style="fill:#808080;stroke:none"
id="path1800-2-0"
cx="62"
cy="141.25279"
r="2.5" />
</g>
<g
id="g2678"
transform="translate(-71.029826,-8.356084)">
<rect
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect2563"
width="15"
height="5"
x="39.355446"
y="75.747589" />
<rect
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect2601"
width="5"
height="15"
x="44.355446"
y="70.747589" />
</g>
<g
id="g2674"
transform="translate(-71.029841,-6.6767017)">
<circle
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path2605"
cx="279.36523"
cy="76.568207"
r="2.5" />
<circle
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path2605-9"
cx="284.36523"
cy="71.574265"
r="2.5" />
<circle
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path2605-3"
cx="289.36523"
cy="76.568207"
r="2.5" />
<circle
style="fill:#808080;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path2605-6"
cx="284.36523"
cy="81.562149"
r="2.5" />
</g>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;display:none;fill:#000000;fill-opacity:1;stroke:none"
x="75.370758"
y="473.16794"
id="text4777"><tspan
sodipodi:role="line"
id="tspan4775"
x="75.370758"
y="473.16794"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64px;font-family:Hack;-inkscape-font-specification:'Hack, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">PowerTools</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke:none"
x="92.57341"
y="389.06296"
id="text4831"><tspan
sodipodi:role="line"
id="tspan4829"
x="92.57341"
y="389.06296"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:48px;font-family:Hack;-inkscape-font-specification:'Hack, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff">Power</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none"
x="237.4406"
y="395.76608"
id="text4835"><tspan
sodipodi:role="line"
id="tspan4833"
x="237.4406"
y="395.76608"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:64px;font-family:Hack;-inkscape-font-specification:'Hack, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Tools</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

584
backend/Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
[package]
name = "powertools"
version = "1.3.1"
version = "1.4.0"
edition = "2021"
authors = ["NGnius (Graham) <ngniusness@gmail.com>"]
description = "Backend (superuser) functionality for PowerTools"
@ -15,6 +15,7 @@ readme = "../README.md"
usdpl-back = { version = "0.10.1", features = ["blocking"] }#, path = "../../usdpl-rs/usdpl-back"}
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sysfuss = { version = "0.2", path = "../../sysfs-nav", features = ["derive"] }
# async
tokio = { version = "*", features = ["time"] }
@ -25,11 +26,11 @@ log = "0.4"
simplelog = "0.12"
# limits & driver functionality
limits_core = { version = "1.0.0", path = "./limits_core" }
limits_core = { version = "2", path = "./limits_core" }
regex = "1"
libryzenadj = { version = "0.12" }
# ureq's tls feature does not like musl targets
ureq = { version = "2.5", features = ["json", "gzip", "brotli", "charset"], default-features = false, optional = true }
ureq = { version = "2", features = ["json", "gzip", "brotli", "charset"], default-features = false, optional = true }
[features]
default = ["online", "decky"]

View file

@ -6,7 +6,7 @@
cargo build
mkdir -p ../bin
#cp ./target/x86_64-unknown-linux-musl/release/powertools ../bin/backend
#cp ./target/x86_64-unknown-linux-musl/debug/powertools ../bin/backend
#cp ./target/debug/powertools ../bin/backend
cp ./target/debug/powertools ../bin/backend
#cp --preserve=mode ./target/x86_64-unknown-linux-musl/release/powertools ../bin/backend
#cp --preserve=mode ./target/x86_64-unknown-linux-musl/debug/powertools ../bin/backend
#cp --preserve=mode ./target/debug/powertools ../bin/backend
cp --preserve=mode ./target/debug/powertools ../bin/backend

View file

@ -4,13 +4,13 @@ version = 3
[[package]]
name = "itoa"
version = "1.0.6"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
[[package]]
name = "limits_core"
version = "1.0.0"
version = "2.0.1"
dependencies = [
"serde",
"serde_json",
@ -18,42 +18,42 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.54"
version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534"
checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.26"
version = "1.0.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
dependencies = [
"proc-macro2",
]
[[package]]
name = "ryu"
version = "1.0.13"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
[[package]]
name = "serde"
version = "1.0.159"
version = "1.0.166"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.159"
version = "1.0.166"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585"
checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6"
dependencies = [
"proc-macro2",
"quote",
@ -62,9 +62,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.95"
version = "1.0.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744"
checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
dependencies = [
"itoa",
"ryu",
@ -73,9 +73,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.12"
version = "2.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79d9531f94112cfc3e4c8f5f02cb2b58f72c97b7efd85f70203cc6d8efda5927"
checksum = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
dependencies = [
"proc-macro2",
"quote",
@ -84,6 +84,6 @@ dependencies = [
[[package]]
name = "unicode-ident"
version = "1.0.8"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"

View file

@ -1,6 +1,6 @@
[package]
name = "limits_core"
version = "1.0.0"
version = "2.0.1"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -57,16 +57,16 @@ impl Default for Base {
},
limits: vec![
super::Limits::Cpu(super::CpuLimit::GenericAMD(super::GenericCpuLimit {
clock_min: Some(super::RangeLimit { min: 1000, max: 3700 }),
clock_max: Some(super::RangeLimit { min: 1000, max: 3700 }),
clock_min: Some(super::RangeLimit { min: Some(1000), max: Some(3700) }),
clock_max: Some(super::RangeLimit { min: Some(1000), max: Some(3700) }),
clock_step: 100,
})),
super::Limits::Gpu(super::GpuLimit::GenericAMD(super::GenericGpuLimit {
fast_ppt: Some(super::RangeLimit { min: 1_000_000, max: 25_000_000 }),
slow_ppt: Some(super::RangeLimit { min: 1_000_000, max: 25_000_000 }),
fast_ppt: Some(super::RangeLimit { min: Some(1_000_000), max: Some(25_000_000) }),
slow_ppt: Some(super::RangeLimit { min: Some(1_000_000), max: Some(25_000_000) }),
ppt_step: Some(1_000_000),
clock_min: Some(super::RangeLimit { min: 400, max: 1100 }),
clock_max: Some(super::RangeLimit { min: 400, max: 1100 }),
clock_min: Some(super::RangeLimit { min: Some(400), max: Some(1100) }),
clock_max: Some(super::RangeLimit { min: Some(400), max: Some(1100) }),
clock_step: Some(100),
..Default::default()
})),
@ -84,16 +84,16 @@ impl Default for Base {
},
limits: vec![
super::Limits::Cpu(super::CpuLimit::GenericAMD(super::GenericCpuLimit {
clock_min: Some(super::RangeLimit { min: 1000, max: 4000 }),
clock_max: Some(super::RangeLimit { min: 1000, max: 4000 }),
clock_min: Some(super::RangeLimit { min: Some(1000), max: Some(4000) }),
clock_max: Some(super::RangeLimit { min: Some(1000), max: Some(4000) }),
clock_step: 100,
})),
super::Limits::Gpu(super::GpuLimit::GenericAMD(super::GenericGpuLimit {
fast_ppt: Some(super::RangeLimit { min: 1_000_000, max: 25_000_000 }),
slow_ppt: Some(super::RangeLimit { min: 1_000_000, max: 25_000_000 }),
fast_ppt: Some(super::RangeLimit { min: Some(1_000_000), max: Some(25_000_000) }),
slow_ppt: Some(super::RangeLimit { min: Some(1_000_000), max: Some(25_000_000) }),
ppt_step: Some(1_000_000),
clock_min: Some(super::RangeLimit { min: 400, max: 1600 }),
clock_max: Some(super::RangeLimit { min: 400, max: 1600 }),
clock_min: Some(super::RangeLimit { min: Some(400), max: Some(1600) }),
clock_max: Some(super::RangeLimit { min: Some(400), max: Some(1600) }),
clock_step: Some(100),
..Default::default()
})),
@ -111,16 +111,16 @@ impl Default for Base {
},
limits: vec![
super::Limits::Cpu(super::CpuLimit::GenericAMD(super::GenericCpuLimit {
clock_min: Some(super::RangeLimit { min: 1000, max: 4500 }),
clock_max: Some(super::RangeLimit { min: 1000, max: 4500 }),
clock_min: Some(super::RangeLimit { min: Some(1000), max: Some(4500) }),
clock_max: Some(super::RangeLimit { min: Some(1000), max: Some(4500) }),
clock_step: 100,
})),
super::Limits::Gpu(super::GpuLimit::GenericAMD(super::GenericGpuLimit {
fast_ppt: Some(super::RangeLimit { min: 1_000_000, max: 25_000_000 }),
slow_ppt: Some(super::RangeLimit { min: 1_000_000, max: 25_000_000 }),
fast_ppt: Some(super::RangeLimit { min: Some(1_000_000), max: Some(25_000_000) }),
slow_ppt: Some(super::RangeLimit { min: Some(1_000_000), max: Some(25_000_000) }),
ppt_step: Some(1_000_000),
clock_min: Some(super::RangeLimit { min: 400, max: 2000 }),
clock_max: Some(super::RangeLimit { min: 400, max: 2000 }),
clock_min: Some(super::RangeLimit { min: Some(400), max: Some(2000) }),
clock_max: Some(super::RangeLimit { min: Some(400), max: Some(2000) }),
clock_step: Some(100),
..Default::default()
})),
@ -138,16 +138,16 @@ impl Default for Base {
},
limits: vec![
super::Limits::Cpu(super::CpuLimit::Generic(super::GenericCpuLimit {
clock_min: Some(super::RangeLimit { min: 1000, max: 4700 }),
clock_max: Some(super::RangeLimit { min: 1000, max: 4700 }),
clock_min: Some(super::RangeLimit { min: Some(1000), max: Some(4700) }),
clock_max: Some(super::RangeLimit { min: Some(1000), max: Some(4700) }),
clock_step: 100,
})),
super::Limits::Gpu(super::GpuLimit::Generic(super::GenericGpuLimit {
fast_ppt: Some(super::RangeLimit { min: 1_000_000, max: 28_000_000 }),
slow_ppt: Some(super::RangeLimit { min: 1_000_000, max: 28_000_000 }),
fast_ppt: Some(super::RangeLimit { min: Some(1_000_000), max: Some(28_000_000) }),
slow_ppt: Some(super::RangeLimit { min: Some(1_000_000), max: Some(28_000_000) }),
ppt_step: Some(1_000_000),
clock_min: Some(super::RangeLimit { min: 400, max: 2200 }),
clock_max: Some(super::RangeLimit { min: 400, max: 2200 }),
clock_min: Some(super::RangeLimit { min: Some(400), max: Some(2200) }),
clock_max: Some(super::RangeLimit { min: Some(400), max: Some(2200) }),
clock_step: Some(100),
..Default::default()
})),
@ -170,7 +170,14 @@ impl Default for Base {
]
}
],
messages: Vec::new(),
messages: vec![
super::DeveloperMessage {
id: 1,
title: "Welcome".to_owned(),
body: "Thanks for installing PowerTools! For more information, please check the wiki. For bugs and requests, please create an issue on GitHub.".to_owned(),
url: Some("https://github.com/NGnius/PowerTools/wiki".to_owned()),
}
],
refresh: Some("http://limits.ngni.us:45000/powertools/v1".to_owned())
}
}

View file

@ -3,6 +3,6 @@ use serde::{Deserialize, Serialize};
/// Base JSON limits information
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct RangeLimit<T> {
pub min: T,
pub max: T,
pub min: Option<T>,
pub max: Option<T>,
}

View file

@ -2,6 +2,27 @@
# It is not intended for manual editing.
version = 3
[[package]]
name = "addr2line"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
dependencies = [
"gimli",
]
[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]]
name = "android_system_properties"
version = "0.1.5"
@ -17,6 +38,21 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "backtrace"
version = "0.3.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
dependencies = [
"addr2line",
"cc",
"cfg-if",
"libc",
"miniz_oxide",
"object",
"rustc-demangle",
]
[[package]]
name = "base64"
version = "0.13.1"
@ -25,9 +61,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "base64"
version = "0.21.0"
version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
[[package]]
name = "bitflags"
@ -46,9 +82,9 @@ dependencies = [
[[package]]
name = "bumpalo"
version = "3.12.0"
version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
[[package]]
name = "byteorder"
@ -76,40 +112,30 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
version = "0.4.24"
version = "0.4.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
dependencies = [
"android-tzdata",
"iana-time-zone",
"js-sys",
"num-integer",
"num-traits",
"time",
"wasm-bindgen",
"winapi",
]
[[package]]
name = "codespan-reporting"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
dependencies = [
"termcolor",
"unicode-width",
]
[[package]]
name = "core-foundation-sys"
version = "0.8.3"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
[[package]]
name = "cpufeatures"
version = "0.2.6"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181"
checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c"
dependencies = [
"libc",
]
@ -124,60 +150,25 @@ dependencies = [
"typenum",
]
[[package]]
name = "cxx"
version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93"
dependencies = [
"cc",
"cxxbridge-flags",
"cxxbridge-macro",
"link-cplusplus",
]
[[package]]
name = "cxx-build"
version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b"
dependencies = [
"cc",
"codespan-reporting",
"once_cell",
"proc-macro2",
"quote",
"scratch",
"syn 2.0.12",
]
[[package]]
name = "cxxbridge-flags"
version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb"
[[package]]
name = "cxxbridge-macro"
version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.12",
]
[[package]]
name = "digest"
version = "0.10.6"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer",
"crypto-common",
]
[[package]]
name = "encoding_rs"
version = "0.8.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
dependencies = [
"cfg-if",
]
[[package]]
name = "fnv"
version = "1.0.7"
@ -186,9 +177,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "form_urlencoded"
version = "1.1.0"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
dependencies = [
"percent-encoding",
]
@ -247,9 +238,9 @@ dependencies = [
[[package]]
name = "getrandom"
version = "0.2.8"
version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
dependencies = [
"cfg-if",
"libc",
@ -257,10 +248,16 @@ dependencies = [
]
[[package]]
name = "h2"
version = "0.3.16"
name = "gimli"
version = "0.27.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d"
checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
[[package]]
name = "h2"
version = "0.3.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
dependencies = [
"bytes",
"fnv",
@ -308,12 +305,9 @@ dependencies = [
[[package]]
name = "hermit-abi"
version = "0.2.6"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
dependencies = [
"libc",
]
checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
[[package]]
name = "http"
@ -351,9 +345,9 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
[[package]]
name = "hyper"
version = "0.14.25"
version = "0.14.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899"
checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
dependencies = [
"bytes",
"futures-channel",
@ -375,9 +369,9 @@ dependencies = [
[[package]]
name = "iana-time-zone"
version = "0.1.54"
version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d"
checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
dependencies = [
"android_system_properties",
"core-foundation-sys",
@ -389,19 +383,18 @@ dependencies = [
[[package]]
name = "iana-time-zone-haiku"
version = "0.1.1"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
dependencies = [
"cxx",
"cxx-build",
"cc",
]
[[package]]
name = "idna"
version = "0.3.0"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
dependencies = [
"unicode-bidi",
"unicode-normalization",
@ -419,28 +412,28 @@ dependencies = [
[[package]]
name = "itoa"
version = "1.0.6"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
[[package]]
name = "js-sys"
version = "0.3.61"
version = "0.3.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "libc"
version = "0.2.140"
version = "0.2.147"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
[[package]]
name = "limits_core"
version = "1.0.0"
version = "2.0.1"
dependencies = [
"serde",
"serde_json",
@ -448,7 +441,7 @@ dependencies = [
[[package]]
name = "limits_srv"
version = "1.0.0"
version = "2.0.1"
dependencies = [
"chrono",
"limits_core",
@ -458,23 +451,11 @@ dependencies = [
"warp",
]
[[package]]
name = "link-cplusplus"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
dependencies = [
"cc",
]
[[package]]
name = "log"
version = "0.4.17"
version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
dependencies = [
"cfg-if",
]
checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
[[package]]
name = "memchr"
@ -499,39 +480,41 @@ dependencies = [
]
[[package]]
name = "mio"
version = "0.8.6"
name = "miniz_oxide"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
dependencies = [
"adler",
]
[[package]]
name = "mio"
version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
dependencies = [
"libc",
"log",
"wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys",
]
[[package]]
name = "multiparty"
version = "0.1.0"
name = "multer"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed1ec6589a6d4a1e0b33b4c0a3f6ee96dfba88ebdb3da51403fd7cf0a24a4b04"
checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2"
dependencies = [
"bytes",
"futures-core",
"encoding_rs",
"futures-util",
"http",
"httparse",
"log",
"memchr",
"pin-project-lite",
"try-lock",
]
[[package]]
name = "num-integer"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
dependencies = [
"autocfg",
"num-traits",
"mime",
"spin",
"version_check",
]
[[package]]
@ -545,51 +528,60 @@ dependencies = [
[[package]]
name = "num_cpus"
version = "1.15.0"
version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [
"hermit-abi",
"libc",
]
[[package]]
name = "once_cell"
version = "1.17.1"
name = "object"
version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
dependencies = [
"memchr",
]
[[package]]
name = "once_cell"
version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
[[package]]
name = "percent-encoding"
version = "2.2.0"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
[[package]]
name = "pin-project"
version = "1.0.12"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "1.0.12"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
"syn",
]
[[package]]
name = "pin-project-lite"
version = "0.2.9"
version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
[[package]]
name = "pin-utils"
@ -605,18 +597,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "proc-macro2"
version = "1.0.54"
version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534"
checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.26"
version = "1.0.29"
source = "registry+https://github.com/rust-lang/crates.io-index"