├── .gitignore ├── src ├── bin │ └── pgrx_embed_pg_render.rs └── lib.rs ├── .cargo └── config.toml ├── pg_render.control ├── Makefile ├── Cargo.toml ├── LICENSE ├── test ├── expected │ └── test.out └── sql │ └── test.sql ├── sql └── pg_render.sql ├── README.md ├── .github └── workflows │ └── release.yml └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | /target 4 | *.iml 5 | **/*.rs.bk -------------------------------------------------------------------------------- /src/bin/pgrx_embed_pg_render.rs: -------------------------------------------------------------------------------- 1 | // https://github.com/pgcentralfoundation/pgrx/issues/1888 2 | ::pgrx::pgrx_embed!(); -------------------------------------------------------------------------------- /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.'cfg(target_os="macos")'] 2 | # Postgres symbols won't be available until runtime 3 | rustflags = ["-Clink-arg=-Wl,-undefined,dynamic_lookup"] 4 | -------------------------------------------------------------------------------- /pg_render.control: -------------------------------------------------------------------------------- 1 | comment = 'pg_render: Created by pgrx' 2 | default_version = '@CARGO_VERSION@' 3 | module_pathname = '$libdir/pg_render' 4 | relocatable = false 5 | superuser = true 6 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # `cargo pgrx run pg14` to run db w/ extension on :28814 2 | # `make test` to run the tests 3 | .PHONY: test 4 | test: 5 | @psql -d pg_render -h ~/.pgrx -p 28814 -f ./test/sql/test.sql | diff - ./test/expected/test.out || (echo "Test failed" && exit 1) && echo "Test passed" 6 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "pg_render" 3 | version = "0.1.2" 4 | edition = "2021" 5 | 6 | [lib] 7 | crate-type = ["cdylib", "lib"] 8 | 9 | [[bin]] 10 | name = "pgrx_embed_pg_render" 11 | path = "src/bin/pgrx_embed_pg_render.rs" 12 | 13 | [features] 14 | default = ["pg16"] 15 | pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] 16 | pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] 17 | pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] 18 | pg17 = ["pgrx/pg17", "pgrx-tests/pg17" ] 19 | pg_test = [] 20 | 21 | [dependencies] 22 | liquid = "0.26.9" 23 | pgrx = "=0.12.8" 24 | 25 | [dev-dependencies] 26 | pgrx-tests = "=0.12.8" 27 | 28 | [profile.dev] 29 | panic = "unwind" 30 | 31 | [profile.release] 32 | panic = "unwind" 33 | opt-level = 3 34 | lto = "fat" 35 | codegen-units = 1 36 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | use pgrx::prelude::*; 2 | use liquid; 3 | 4 | pgrx::pg_module_magic!(); 5 | 6 | // We return a static str because we know it's returned to Postgres-land and lifetime is not an issue in Rust anymore. 7 | // The input is a ref to Postgres memory location. When we return a String, it gets converted to Postgres text type again in pgrx. 8 | 9 | #[pg_extern] 10 | fn pg_render_liquid(template_code: &str, data: pgrx::Json) -> String { 11 | // Panic causes Postgres ERROR, so we can just unwrap here. 12 | // Will cancel the query, not crash the postgres process. 13 | let template = liquid::ParserBuilder::with_stdlib() 14 | .build().unwrap() 15 | .parse(template_code).unwrap(); 16 | let input = liquid::to_object(&data).unwrap(); 17 | let output = template.render(&input).unwrap(); 18 | return output; 19 | } 20 | 21 | use pgrx::extension_sql_file; 22 | extension_sql_file!( 23 | "../sql/pg_render.sql", 24 | ); 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2023 Matias Kaskimies 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /test/expected/test.out: -------------------------------------------------------------------------------- 1 | DO 2 | DO 3 | render 4 | -------- 5 | 4 6 | (1 row) 7 | 8 | render 9 | --------- 10 | Title 1 11 | (1 row) 12 | 13 | render 14 | --------------------------- 15 | Title 1 Example content 1 16 | (1 row) 17 | 18 | render 19 | -------------------------------------- 20 | Title 1 Title 2 Title 3 Title 4 21 | (1 row) 22 | 23 | render 24 | -------------------------------------------------------------------------------------------------------------------------------------------------- 25 | Title 1 Example content 1 Author 1 Title 2 Example content 2 Author 2 Title 3 Example content 3 Author 3 Title 4 Example content 4 Author 4 26 | (1 row) 27 | 28 | render_agg 29 | ---------------- 30 | Title 1Title 2 31 | (1 row) 32 | 33 | render_agg 34 | ------------------------------------------------------------------------------------------------------ 35 | Title 1 Example content 1Title 2 Example content 2Title 3 Example content 3Title 4 Example content 4 36 | (1 row) 37 | 38 | render_agg 39 | ------------------------------------------------------------------------------------------------------ 40 | Title 1 Example content 1Title 2 Example content 2Title 3 Example content 3Title 4 Example content 4 41 | (1 row) 42 | 43 | render 44 | -------- 45 | 1 46 | (1 row) 47 | 48 | render 49 | -------------------- 50 | 922337203685477580 51 | (1 row) 52 | 53 | render 54 | -------- 55 | 1 56 | (1 row) 57 | 58 | render 59 | -------- 60 | 1.59 61 | (1 row) 62 | 63 | render 64 | -------- 65 | 1.59 66 | (1 row) 67 | 68 | render 69 | -------- 70 | 1.59 71 | (1 row) 72 | 73 | render 74 | -------- 75 | 1 76 | (1 row) 77 | 78 | render 79 | -------- 80 | 1 81 | (1 row) 82 | 83 | render 84 | -------- 85 | a 86 | (1 row) 87 | 88 | render 89 | -------- 90 | a 91 | (1 row) 92 | 93 | render 94 | -------- 95 | a 96 | (1 row) 97 | 98 | render 99 | -------- 100 | true 101 | (1 row) 102 | 103 | render 104 | ------------ 105 | 2024-02-11 106 | (1 row) 107 | 108 | render 109 | ---------- 110 | 14:30:00 111 | (1 row) 112 | 113 | render 114 | --------------------- 115 | 2024-02-11T14:30:00 116 | (1 row) 117 | 118 | render 119 | --------------------------- 120 | 2024-02-11T16:30:00+02:00 121 | (1 row) 122 | 123 | render 124 | -------- 125 | 1 day 126 | (1 row) 127 | 128 | render 129 | -------------------------------------- 130 | 550e8400-e29b-41d4-a716-446655440000 131 | (1 row) 132 | 133 | render 134 | -------------- 135 | 192.0.2.0/24 136 | (1 row) 137 | 138 | render 139 | -------- 140 | a 141 | (1 row) 142 | 143 | render 144 | -------- 145 | a 146 | (1 row) 147 | 148 | -------------------------------------------------------------------------------- /test/sql/test.sql: -------------------------------------------------------------------------------- 1 | -- check if the extension exists, always output 'DO' to not change the diff result of the test 2 | do $$ 3 | begin 4 | drop extension if exists pg_render; 5 | create extension pg_render; 6 | end $$; 7 | 8 | -- only insert test data if the table does not exist 9 | do $$ 10 | begin 11 | if not exists (select 1 from information_schema.tables where table_name = 'posts') then 12 | create table posts (id serial primary key, title text not null, text text not null, author text not null); 13 | insert into posts (title, text, author) values 14 | ('Title 1', 'Example content 1', 'Author 1'), 15 | ('Title 2', 'Example content 2', 'Author 2'), 16 | ('Title 3', 'Example content 3', 'Author 3'), 17 | ('Title 4', 'Example content 4', 'Author 4'); 18 | end if; 19 | end $$; 20 | 21 | -- render a single value 22 | select render('{{ value }}', (select count(*) from posts)); 23 | 24 | -- render a single column from a single row 25 | select render('{{ value }}', (select title as value from posts where id = 1)); 26 | 27 | -- render multiple columns from a single row 28 | select render('{{ title }} {{ text }}', (select to_json(props) from (select title, text from posts where id = 1) props)); 29 | 30 | -- render array of values by looping in template 31 | select render('{% for value in values %} {{ value }} {% endfor %}', (select array(select title from posts))); 32 | 33 | -- render multiple rows with multiple columns 34 | select 35 | render( 36 | '{% for row in rows %} {{ row.title }} {{ row.text }} {{ row.author }} {% endfor %}', 37 | json_agg(to_json(posts.*)) 38 | ) 39 | from posts; 40 | 41 | -- render aggregate single column value 42 | select render_agg('{{ value }}', title) from posts where id < 3; 43 | 44 | -- render aggregate using derived table 45 | select render_agg('{{ title }} {{ text }}', props) from (select title, text from posts) as props; 46 | 47 | -- render aggregate using json_build_object 48 | select render_agg('{{ title }} {{ text }}', json_build_object('title', title, 'text', text)) from posts; 49 | 50 | -- render different types of values 51 | select render('{{ value }}', 1::int); 52 | select render('{{ value }}', 922337203685477580::bigint); 53 | select render('{{ value }}', 1::smallint); 54 | select render('{{ value }}', 1.59::float); 55 | select render('{{ value }}', 1.59::decimal); 56 | select render('{{ value }}', 1.59::double precision); 57 | select render('{{ value }}', 1::numeric); 58 | select render('{{ value }}', 1::real); 59 | select render('{{ value }}', 'a'::text); 60 | select render('{{ value }}', 'a'::varchar); 61 | select render('{{ value }}', 'a'::char); 62 | select render('{{ value }}', true::bool); 63 | 64 | select render('{{ value }}', '2024-02-11'::date); 65 | select render('{{ value }}', '14:30:00'::time); 66 | select render('{{ value }}', '2024-02-11 14:30:00'::timestamp); 67 | select render('{{ value }}', '2024-02-11 14:30:00+00'::timestamptz); 68 | select render('{{ value }}', '1 day'::interval); 69 | 70 | select render('{{ value }}', '550e8400-e29b-41d4-a716-446655440000'::uuid); 71 | select render('{{ value }}', '192.0.2.0/24'::inet); 72 | 73 | select render('{{ value }}', '{ "value": "a" }'::json); 74 | select render('{{ value }}', '{ "value": "a" }'::jsonb); 75 | -------------------------------------------------------------------------------- /sql/pg_render.sql: -------------------------------------------------------------------------------- 1 | create or replace function render_template(template text, json_data json) 2 | returns text as $$ 3 | declare 4 | engine text := 'liquid'; 5 | result_text text; 6 | begin 7 | result_text := null; 8 | begin 9 | case engine 10 | when 'liquid' then 11 | result_text := pg_render_liquid(template, json_data); 12 | else 13 | result_text := format(template, array(select json_array_elements_text(json_data))); 14 | end case; 15 | exception 16 | when others then 17 | raise exception 'error in render_template function: %', sqlerrm; 18 | end; 19 | return result_text; 20 | end; 21 | $$ language plpgsql stable; 22 | 23 | -- main render function 24 | create or replace function render(template text, input anyelement) 25 | returns text as $$ 26 | declare 27 | typeof regtype := pg_typeof(input)::regtype; 28 | json_types regtype[] := array['json'::regtype, 'jsonb'::regtype]; 29 | -- single value types 30 | text_types regtype[] := array['text'::regtype, 'varchar'::regtype, 'char'::regtype]; 31 | numeric_types regtype[] := array['integer'::regtype, 'double precision'::regtype, 'real'::regtype, 'numeric'::regtype, 'smallint'::regtype, 'bigint'::regtype]; 32 | time_types regtype[] := array['time'::regtype, 'timestamp'::regtype, 'timestamptz'::regtype, 'interval'::regtype, 'date'::regtype]; 33 | other_types regtype[] := array['bool'::regtype, 'uuid'::regtype, 'inet'::regtype]; 34 | begin 35 | case 36 | -- single value 37 | when typeof = any(text_types || numeric_types || time_types || other_types) then 38 | return render_template(template, json_build_object('value', input)); 39 | -- array of values 40 | when typeof::text = 'array' or typeof::text LIKE '%[]' then 41 | return render_template(template, json_build_object('values', input)); 42 | -- json object 43 | when typeof = any(json_types) then 44 | -- if the json object is an array, wrap it in a 'rows' object 45 | if json_typeof(input::json) = 'array' then 46 | return render_template(template, json_build_object('rows', input)); 47 | -- otherwise, just pass the object as json 48 | else 49 | return render_template(template, input::json); 50 | end if; 51 | -- the input type is not supported 52 | else 53 | raise exception 'unsupported input parameter type: %', typeof; 54 | end case; 55 | end; 56 | $$ language plpgsql stable; 57 | 58 | create or replace function render_agg_sfunc(state text, template text, input anyelement) 59 | returns text language plpgsql as $$ 60 | declare 61 | typeof regtype := pg_typeof(input)::regtype; 62 | json_input json; 63 | json_types regtype[] := array['json'::regtype, 'jsonb'::regtype]; 64 | -- single value types 65 | text_types regtype[] := array['text'::regtype, 'varchar'::regtype, 'char'::regtype]; 66 | numeric_types regtype[] := array['integer'::regtype, 'double precision'::regtype, 'real'::regtype, 'numeric'::regtype, 'smallint'::regtype, 'bigint'::regtype]; 67 | time_types regtype[] := array['time'::regtype, 'timestamp'::regtype, 'timestamptz'::regtype, 'interval'::regtype, 'date'::regtype]; 68 | other_types regtype[] := array['bool'::regtype, 'uuid'::regtype, 'inet'::regtype]; 69 | begin 70 | if typeof = any(json_types) then 71 | json_input := input; 72 | elsif typeof = any(text_types || numeric_types || time_types || other_types) then 73 | json_input := json_build_object('value', input); 74 | elsif typeof::text = 'array' or typeof::text LIKE '%[]' then 75 | json_input := json_build_object('values', input); 76 | else 77 | -- convert record to json if it's not already json 78 | json_input := row_to_json(input); 79 | end if; 80 | -- render the template to state 81 | return coalesce(state, '') || render(template, json_input); 82 | end $$; 83 | 84 | create or replace function render_agg_final(state text) 85 | returns text language plpgsql as $$ 86 | begin 87 | return coalesce(state, ''); 88 | end $$; 89 | 90 | create aggregate render_agg(text, anyelement) ( 91 | sfunc = render_agg_sfunc, 92 | stype = text, 93 | finalfunc = render_agg_final, 94 | initcond = '' 95 | ); 96 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pg_render 2 | 3 | Render engine extension for PostgreSQL. 4 | 5 | ```sql 6 | -- PostgreSQL extension 7 | create extension pg_render; 8 | -- Serve /index using postgREST 9 | create function api.index() returns "text/html" as $$ 10 | -- Render HTML template with pg_render 11 | select render( 12 | ' 13 | 14 | {{ title }} 15 | 16 | 17 |

{{ title }}

18 |

{{ text }}

19 | {{ author }} 20 | 21 | ', 22 | (select to_json(props) from (select title, text, author from posts where id = 1) props) 23 | ) 24 | $$; 25 | ``` 26 | 27 | -> 28 | 29 | ```html 30 | # HTTP GET /index 31 | 32 | 33 | Example 34 | 35 | 36 |

Example

37 |

Example text

38 | Example author 39 | 40 | 41 | ``` 42 | 43 | # Installation 44 | 45 | Download from [Releases](https://github.com/mkaski/pg_render/releases). 46 | 47 | ```bash 48 | # On Ubuntu w/ PostgreSQL 16 49 | wget https://github.com/mkaski/pg_render/releases/download/v0.1.2/pg_render-v0.1.2-pg16-amd64-linux-gnu.deb \ 50 | && dpkg -i pg_render-v0.1.2-pg16-amd64-linux-gnu.deb \ 51 | && apt-get install -f \ 52 | && rm -rf pg_render-v0.1.2-pg16-amd64-linux-gnu.deb 53 | 54 | # In PostgreSQL 55 | create extension pg_render; 56 | ``` 57 | 58 | # Examples 59 | 60 | See more examples in [pg_render_example](https://github.com/mkaski/pg_render_example/blob/master/sql/02_views.sql) project, and how to use pg_render with [PostgREST](https://postgrest.org). 61 | 62 |
63 | Example Data 64 | 65 | ```sql 66 | create table posts (id serial primary key, title text not null, text text not null, author text not null); 67 | insert into posts (title, text, author) values 68 | ('Title 1', 'Example content 1', 'Author 1'), 69 | ('Title 2', 'Example content 2', 'Author 2'), 70 | ('Title 3', 'Example content 3', 'Author 3'); 71 | 72 | create table templates (id text primary key, template text not null); 73 | insert into templates (id, template) values ('example', '
{{ title }}
{{ text }}
'); 74 | ``` 75 | 76 |
77 | 78 | ## `render(template text, input json | array | single value)` 79 | 80 | Render a template with the query result. 81 | 82 | ```sql 83 | -- render a single value 84 | select render('Total posts: {{ value }}', (select count(*) from posts)); 85 | 86 | -- render a single column from a single row 87 | select render('Title: {{ value }}', (select title as value from posts where id = 1)); 88 | 89 | -- render multiple columns from a single row 90 | select render('Title: {{ title }}, Text: {{ text }}', (select to_json(props) from (select title, text from posts where id = 1) props)); 91 | 92 | -- render array of values by looping in template 93 | select render('{% for value in values %} {{ value }} {% endfor %}', (select array(select title from posts))); 94 | 95 | -- render multiple rows with multiple columns 96 | select 97 | render( 98 | '{% for row in rows %} {{ row.title }} - {{ row.text }} - {{ row.author }} {% endfor %}', 99 | json_agg(to_json(posts.*)) 100 | ) 101 | from posts; 102 | 103 | -- render from saved template 104 | select render( 105 | (select template from templates where id = 'example'), 106 | (select to_json(props) from ( 107 | select title, text 108 | from posts 109 | where title = 'Title 3') props 110 | ) 111 | ); 112 | ``` 113 | 114 | ## `render_agg(template text, input record | json | single value)` 115 | 116 | Render multiple rows with aggregate render function. Eg. render a template for all posts queried. 117 | 118 | 119 | ```sql 120 | -- render aggregate with single column 121 | select render_agg('{{ value }}', title) from posts where id < 3; 122 | 123 | -- render aggregate using derived table 124 | select render_agg('{{ title }} {{ text }}', props) from (select title, text from posts) as props; 125 | 126 | -- render aggregate using json_build_object 127 | select render_agg('{{ title }} {{ text }}', json_build_object('title', title, 'text', text)) from posts; 128 | ``` 129 | 130 | ```sql 131 | select render_agg('

{{ title }}

{{ text }}

', props) 132 | from (select title, text from posts limit 3) as props; 133 | ``` 134 | -> 135 | ```html 136 |

Title 1

Content for Post 1

137 |

Title 2

Content for Post 2

138 |

Title 2

Content for Post 3

139 | ``` 140 | 141 | # Development 142 | 143 | Made with 144 | 145 | - [Liquid](https://shopify.github.io/liquid/) templating language via [liquid-rust](https://github.com/cobalt-org/liquid-rust) 146 | - [pgrx](https://github.com/pgcentralfoundation/pgrx) Rust extension framework for PostgreSQL 147 | 148 | ## Build and run locally 149 | 150 | ```bash 151 | # clone this repo 152 | cargo install --locked cargo-pgrx 153 | cargo pgrx init 154 | cargo pgrx run 155 | ``` 156 | 157 | ## Test 158 | 159 | ```bash 160 | cargo pgrx run pg14 161 | make test 162 | ``` -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | # Copied from https://github.com/supabase/pg_graphql/blob/master/.github/workflows/release.yml 2 | name: Release 3 | 4 | 5 | on: 6 | push: 7 | # Sequence of patterns matched against refs/tags 8 | tags: 9 | - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 10 | 11 | jobs: 12 | release: 13 | name: Create Release 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout code 17 | uses: actions/checkout@v2 18 | - name: Create Release 19 | id: create_release 20 | uses: actions/create-release@v1 21 | env: 22 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 23 | with: 24 | tag_name: ${{ github.ref }} 25 | release_name: ${{ github.ref }} 26 | body: '' 27 | draft: true 28 | prerelease: false 29 | 30 | build-linux-gnu: 31 | name: release artifacts 32 | needs: 33 | - release 34 | strategy: 35 | matrix: 36 | extension_name: 37 | - pg_render 38 | package_name: 39 | - pg-render 40 | pgrx_version: 41 | - 0.12.8 42 | postgres: [14, 15, 16, 17] 43 | box: 44 | - { runner: ubuntu-20.04, arch: amd64 } 45 | # - { runner: macos-latest, arch: arm64 } 46 | runs-on: ${{ matrix.box.runner }} 47 | timeout-minutes: 90 48 | steps: 49 | - uses: actions/checkout@v3 50 | 51 | - name: build release artifacts 52 | run: | 53 | # Add postgres package repo 54 | sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 55 | wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null 56 | 57 | sudo apt-get update 58 | sudo apt-get install -y --no-install-recommends git build-essential libpq-dev curl libreadline6-dev zlib1g-dev pkg-config cmake 59 | sudo apt-get install -y --no-install-recommends libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt-dev libssl-dev libxml2-utils xsltproc ccache 60 | sudo apt-get install -y --no-install-recommends clang libclang-dev gcc tree 61 | 62 | # Install requested postgres version 63 | sudo apt install -y postgresql-${{ matrix.postgres }} postgresql-server-dev-${{ matrix.postgres }} -y 64 | 65 | # Ensure installed pg_config is first on path 66 | export PATH=$PATH:/usr/lib/postgresql/${{ matrix.postgres }}/bin 67 | 68 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal --default-toolchain stable && \ 69 | rustup --version && \ 70 | rustc --version && \ 71 | cargo --version 72 | 73 | # Ensure cargo/rust on path 74 | source "$HOME/.cargo/env" 75 | 76 | cargo install cargo-pgrx --version ${{ matrix.pgrx_version }} --locked 77 | cargo pgrx init --pg${{ matrix.postgres }}=/usr/lib/postgresql/${{ matrix.postgres }}/bin/pg_config 78 | 79 | # selects the pgVer from pg_config on path 80 | # https://github.com/tcdi/pgrx/issues/288 81 | cargo pgrx package --no-default-features --features pg${{ matrix.postgres }} 82 | 83 | # Create installable package 84 | mkdir archive 85 | cp `find target/release -type f -name "${{ matrix.extension_name }}*"` archive 86 | 87 | # name of the package directory before packaging 88 | package_dir=${{ matrix.extension_name }}-${{ github.ref_name }}-pg${{ matrix.postgres }}-${{ matrix.box.arch }}-linux-gnu 89 | 90 | # Copy files into directory structure 91 | mkdir -p ${package_dir}/usr/lib/postgresql/lib 92 | mkdir -p ${package_dir}/var/lib/postgresql/extension 93 | cp archive/*.so ${package_dir}/usr/lib/postgresql/lib 94 | cp archive/*.control ${package_dir}/var/lib/postgresql/extension 95 | cp archive/*.sql ${package_dir}/var/lib/postgresql/extension 96 | 97 | # symlinks to Copy files into directory structure 98 | mkdir -p ${package_dir}/usr/lib/postgresql/${{ matrix.postgres }}/lib 99 | cd ${package_dir}/usr/lib/postgresql/${{ matrix.postgres }}/lib 100 | cp -s ../../lib/*.so . 101 | cd ../../../../../.. 102 | 103 | mkdir -p ${package_dir}/usr/share/postgresql/${{ matrix.postgres }}/extension 104 | cd ${package_dir}/usr/share/postgresql/${{ matrix.postgres }}/extension 105 | 106 | cp -s ../../../../../var/lib/postgresql/extension/${{ matrix.extension_name }}.control . 107 | cp -s ../../../../../var/lib/postgresql/extension/${{ matrix.extension_name }}*.sql . 108 | cd ../../../../../.. 109 | 110 | # Create install control file 111 | extension_version=${{ github.ref_name }} 112 | # strip the leading v 113 | deb_version=${extension_version:1} 114 | 115 | mkdir -p ${package_dir}/DEBIAN 116 | touch ${package_dir}/DEBIAN/control 117 | echo 'Package: ${{ matrix.package_name }}' >> ${package_dir}/DEBIAN/control 118 | echo 'Version:' ${deb_version} >> ${package_dir}/DEBIAN/control 119 | echo 'Architecture: ${{ matrix.box.arch }}' >> ${package_dir}/DEBIAN/control 120 | echo 'Maintainer: Matias Kaskimies' >> ${package_dir}/DEBIAN/control 121 | echo 'Description: A PostgreSQL extension' >> ${package_dir}/DEBIAN/control 122 | 123 | # Create deb package 124 | sudo chown -R root:root ${package_dir} 125 | sudo chmod -R 00755 ${package_dir} 126 | sudo dpkg-deb --build --root-owner-group ${package_dir} 127 | 128 | - name: Get upload url 129 | run: | 130 | echo "UPLOAD_URL=$(curl --silent -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' https://api.github.com/repos/${{ github.repository }}/releases | jq '.[] | select(.draft == true) | .upload_url' --raw-output)" >> $GITHUB_ENV 131 | 132 | - name: Upload release asset 133 | uses: actions/upload-release-asset@v1 134 | env: 135 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 136 | with: 137 | upload_url: ${{ env.UPLOAD_URL }} 138 | asset_path: ./${{ matrix.extension_name }}-${{ github.ref_name }}-pg${{ matrix.postgres }}-${{ matrix.box.arch }}-linux-gnu.deb 139 | asset_name: ${{ matrix.extension_name }}-${{ github.ref_name }}-pg${{ matrix.postgres }}-${{ matrix.box.arch }}-linux-gnu.deb 140 | asset_content_type: application/vnd.debian.binary-package -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "addr2line" 7 | version = "0.24.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler2" 16 | version = "2.0.0" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 19 | 20 | [[package]] 21 | name = "aho-corasick" 22 | version = "1.1.3" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 25 | dependencies = [ 26 | "memchr", 27 | ] 28 | 29 | [[package]] 30 | name = "annotate-snippets" 31 | version = "0.9.2" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e" 34 | dependencies = [ 35 | "unicode-width", 36 | "yansi-term", 37 | ] 38 | 39 | [[package]] 40 | name = "anstyle" 41 | version = "1.0.10" 42 | source = "registry+https://github.com/rust-lang/crates.io-index" 43 | checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" 44 | 45 | [[package]] 46 | name = "anyhow" 47 | version = "1.0.93" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" 50 | 51 | [[package]] 52 | name = "anymap2" 53 | version = "0.13.0" 54 | source = "registry+https://github.com/rust-lang/crates.io-index" 55 | checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c" 56 | 57 | [[package]] 58 | name = "async-trait" 59 | version = "0.1.83" 60 | source = "registry+https://github.com/rust-lang/crates.io-index" 61 | checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" 62 | dependencies = [ 63 | "proc-macro2", 64 | "quote", 65 | "syn", 66 | ] 67 | 68 | [[package]] 69 | name = "atomic-traits" 70 | version = "0.3.0" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "b29ec3788e96fb4fdb275ccb9d62811f2fa903d76c5eb4dd6fe7d09a7ed5871f" 73 | dependencies = [ 74 | "cfg-if", 75 | "rustc_version", 76 | ] 77 | 78 | [[package]] 79 | name = "autocfg" 80 | version = "1.4.0" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 83 | 84 | [[package]] 85 | name = "backtrace" 86 | version = "0.3.74" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" 89 | dependencies = [ 90 | "addr2line", 91 | "cfg-if", 92 | "libc", 93 | "miniz_oxide", 94 | "object", 95 | "rustc-demangle", 96 | "windows-targets", 97 | ] 98 | 99 | [[package]] 100 | name = "base64" 101 | version = "0.22.1" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 104 | 105 | [[package]] 106 | name = "bindgen" 107 | version = "0.70.1" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" 110 | dependencies = [ 111 | "annotate-snippets", 112 | "bitflags", 113 | "cexpr", 114 | "clang-sys", 115 | "itertools", 116 | "proc-macro2", 117 | "quote", 118 | "regex", 119 | "rustc-hash", 120 | "shlex", 121 | "syn", 122 | ] 123 | 124 | [[package]] 125 | name = "bit-set" 126 | version = "0.5.3" 127 | source = "registry+https://github.com/rust-lang/crates.io-index" 128 | checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 129 | dependencies = [ 130 | "bit-vec", 131 | ] 132 | 133 | [[package]] 134 | name = "bit-vec" 135 | version = "0.6.3" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 138 | 139 | [[package]] 140 | name = "bitflags" 141 | version = "2.6.0" 142 | source = "registry+https://github.com/rust-lang/crates.io-index" 143 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 144 | 145 | [[package]] 146 | name = "bitvec" 147 | version = "1.0.1" 148 | source = "registry+https://github.com/rust-lang/crates.io-index" 149 | checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 150 | dependencies = [ 151 | "funty", 152 | "radium", 153 | "tap", 154 | "wyz", 155 | ] 156 | 157 | [[package]] 158 | name = "block-buffer" 159 | version = "0.10.4" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 162 | dependencies = [ 163 | "generic-array", 164 | ] 165 | 166 | [[package]] 167 | name = "bumpalo" 168 | version = "3.16.0" 169 | source = "registry+https://github.com/rust-lang/crates.io-index" 170 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 171 | 172 | [[package]] 173 | name = "byteorder" 174 | version = "1.5.0" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 177 | 178 | [[package]] 179 | name = "bytes" 180 | version = "1.8.0" 181 | source = "registry+https://github.com/rust-lang/crates.io-index" 182 | checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" 183 | 184 | [[package]] 185 | name = "camino" 186 | version = "1.1.9" 187 | source = "registry+https://github.com/rust-lang/crates.io-index" 188 | checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" 189 | dependencies = [ 190 | "serde", 191 | ] 192 | 193 | [[package]] 194 | name = "cargo-platform" 195 | version = "0.1.8" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" 198 | dependencies = [ 199 | "serde", 200 | ] 201 | 202 | [[package]] 203 | name = "cargo_metadata" 204 | version = "0.18.1" 205 | source = "registry+https://github.com/rust-lang/crates.io-index" 206 | checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" 207 | dependencies = [ 208 | "camino", 209 | "cargo-platform", 210 | "semver 1.0.23", 211 | "serde", 212 | "serde_json", 213 | "thiserror", 214 | ] 215 | 216 | [[package]] 217 | name = "cargo_toml" 218 | version = "0.19.2" 219 | source = "registry+https://github.com/rust-lang/crates.io-index" 220 | checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" 221 | dependencies = [ 222 | "serde", 223 | "toml", 224 | ] 225 | 226 | [[package]] 227 | name = "cc" 228 | version = "1.2.1" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" 231 | dependencies = [ 232 | "shlex", 233 | ] 234 | 235 | [[package]] 236 | name = "cee-scape" 237 | version = "0.2.0" 238 | source = "registry+https://github.com/rust-lang/crates.io-index" 239 | checksum = "4d67dfb052149f779f77e9ce089cea126e00657e8f0d11dafc7901fde4291101" 240 | dependencies = [ 241 | "cc", 242 | "libc", 243 | ] 244 | 245 | [[package]] 246 | name = "cexpr" 247 | version = "0.6.0" 248 | source = "registry+https://github.com/rust-lang/crates.io-index" 249 | checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 250 | dependencies = [ 251 | "nom", 252 | ] 253 | 254 | [[package]] 255 | name = "cfg-if" 256 | version = "1.0.0" 257 | source = "registry+https://github.com/rust-lang/crates.io-index" 258 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 259 | 260 | [[package]] 261 | name = "clang-sys" 262 | version = "1.8.1" 263 | source = "registry+https://github.com/rust-lang/crates.io-index" 264 | checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" 265 | dependencies = [ 266 | "glob", 267 | "libc", 268 | "libloading", 269 | ] 270 | 271 | [[package]] 272 | name = "clap" 273 | version = "4.5.21" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" 276 | dependencies = [ 277 | "clap_builder", 278 | "clap_derive", 279 | ] 280 | 281 | [[package]] 282 | name = "clap-cargo" 283 | version = "0.14.1" 284 | source = "registry+https://github.com/rust-lang/crates.io-index" 285 | checksum = "23b2ea69cefa96b848b73ad516ad1d59a195cdf9263087d977f648a818c8b43e" 286 | dependencies = [ 287 | "anstyle", 288 | "cargo_metadata", 289 | "clap", 290 | ] 291 | 292 | [[package]] 293 | name = "clap_builder" 294 | version = "4.5.21" 295 | source = "registry+https://github.com/rust-lang/crates.io-index" 296 | checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" 297 | dependencies = [ 298 | "anstyle", 299 | "clap_lex", 300 | ] 301 | 302 | [[package]] 303 | name = "clap_derive" 304 | version = "4.5.18" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" 307 | dependencies = [ 308 | "heck", 309 | "proc-macro2", 310 | "quote", 311 | "syn", 312 | ] 313 | 314 | [[package]] 315 | name = "clap_lex" 316 | version = "0.7.3" 317 | source = "registry+https://github.com/rust-lang/crates.io-index" 318 | checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" 319 | 320 | [[package]] 321 | name = "convert_case" 322 | version = "0.6.0" 323 | source = "registry+https://github.com/rust-lang/crates.io-index" 324 | checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" 325 | dependencies = [ 326 | "unicode-segmentation", 327 | ] 328 | 329 | [[package]] 330 | name = "core-foundation-sys" 331 | version = "0.8.7" 332 | source = "registry+https://github.com/rust-lang/crates.io-index" 333 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 334 | 335 | [[package]] 336 | name = "cpufeatures" 337 | version = "0.2.15" 338 | source = "registry+https://github.com/rust-lang/crates.io-index" 339 | checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" 340 | dependencies = [ 341 | "libc", 342 | ] 343 | 344 | [[package]] 345 | name = "crossbeam-deque" 346 | version = "0.8.5" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 349 | dependencies = [ 350 | "crossbeam-epoch", 351 | "crossbeam-utils", 352 | ] 353 | 354 | [[package]] 355 | name = "crossbeam-epoch" 356 | version = "0.9.18" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 359 | dependencies = [ 360 | "crossbeam-utils", 361 | ] 362 | 363 | [[package]] 364 | name = "crossbeam-utils" 365 | version = "0.8.20" 366 | source = "registry+https://github.com/rust-lang/crates.io-index" 367 | checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 368 | 369 | [[package]] 370 | name = "crypto-common" 371 | version = "0.1.6" 372 | source = "registry+https://github.com/rust-lang/crates.io-index" 373 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 374 | dependencies = [ 375 | "generic-array", 376 | "typenum", 377 | ] 378 | 379 | [[package]] 380 | name = "deranged" 381 | version = "0.3.11" 382 | source = "registry+https://github.com/rust-lang/crates.io-index" 383 | checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 384 | dependencies = [ 385 | "powerfmt", 386 | ] 387 | 388 | [[package]] 389 | name = "digest" 390 | version = "0.10.7" 391 | source = "registry+https://github.com/rust-lang/crates.io-index" 392 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 393 | dependencies = [ 394 | "block-buffer", 395 | "crypto-common", 396 | "subtle", 397 | ] 398 | 399 | [[package]] 400 | name = "displaydoc" 401 | version = "0.2.5" 402 | source = "registry+https://github.com/rust-lang/crates.io-index" 403 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 404 | dependencies = [ 405 | "proc-macro2", 406 | "quote", 407 | "syn", 408 | ] 409 | 410 | [[package]] 411 | name = "doc-comment" 412 | version = "0.3.3" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" 415 | 416 | [[package]] 417 | name = "either" 418 | version = "1.13.0" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 421 | 422 | [[package]] 423 | name = "enum-map" 424 | version = "2.7.3" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" 427 | dependencies = [ 428 | "enum-map-derive", 429 | ] 430 | 431 | [[package]] 432 | name = "enum-map-derive" 433 | version = "0.17.0" 434 | source = "registry+https://github.com/rust-lang/crates.io-index" 435 | checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" 436 | dependencies = [ 437 | "proc-macro2", 438 | "quote", 439 | "syn", 440 | ] 441 | 442 | [[package]] 443 | name = "equivalent" 444 | version = "1.0.1" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 447 | 448 | [[package]] 449 | name = "errno" 450 | version = "0.3.9" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 453 | dependencies = [ 454 | "libc", 455 | "windows-sys 0.52.0", 456 | ] 457 | 458 | [[package]] 459 | name = "eyre" 460 | version = "0.6.12" 461 | source = "registry+https://github.com/rust-lang/crates.io-index" 462 | checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" 463 | dependencies = [ 464 | "indenter", 465 | "once_cell", 466 | ] 467 | 468 | [[package]] 469 | name = "fallible-iterator" 470 | version = "0.2.0" 471 | source = "registry+https://github.com/rust-lang/crates.io-index" 472 | checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" 473 | 474 | [[package]] 475 | name = "fastrand" 476 | version = "2.2.0" 477 | source = "registry+https://github.com/rust-lang/crates.io-index" 478 | checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" 479 | 480 | [[package]] 481 | name = "fixedbitset" 482 | version = "0.4.2" 483 | source = "registry+https://github.com/rust-lang/crates.io-index" 484 | checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" 485 | 486 | [[package]] 487 | name = "fnv" 488 | version = "1.0.7" 489 | source = "registry+https://github.com/rust-lang/crates.io-index" 490 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 491 | 492 | [[package]] 493 | name = "form_urlencoded" 494 | version = "1.2.1" 495 | source = "registry+https://github.com/rust-lang/crates.io-index" 496 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 497 | dependencies = [ 498 | "percent-encoding", 499 | ] 500 | 501 | [[package]] 502 | name = "funty" 503 | version = "2.0.0" 504 | source = "registry+https://github.com/rust-lang/crates.io-index" 505 | checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 506 | 507 | [[package]] 508 | name = "futures-channel" 509 | version = "0.3.31" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 512 | dependencies = [ 513 | "futures-core", 514 | "futures-sink", 515 | ] 516 | 517 | [[package]] 518 | name = "futures-core" 519 | version = "0.3.31" 520 | source = "registry+https://github.com/rust-lang/crates.io-index" 521 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 522 | 523 | [[package]] 524 | name = "futures-macro" 525 | version = "0.3.31" 526 | source = "registry+https://github.com/rust-lang/crates.io-index" 527 | checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 528 | dependencies = [ 529 | "proc-macro2", 530 | "quote", 531 | "syn", 532 | ] 533 | 534 | [[package]] 535 | name = "futures-sink" 536 | version = "0.3.31" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 539 | 540 | [[package]] 541 | name = "futures-task" 542 | version = "0.3.31" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 545 | 546 | [[package]] 547 | name = "futures-util" 548 | version = "0.3.31" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 551 | dependencies = [ 552 | "futures-core", 553 | "futures-macro", 554 | "futures-sink", 555 | "futures-task", 556 | "pin-project-lite", 557 | "pin-utils", 558 | "slab", 559 | ] 560 | 561 | [[package]] 562 | name = "generic-array" 563 | version = "0.14.7" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 566 | dependencies = [ 567 | "typenum", 568 | "version_check", 569 | ] 570 | 571 | [[package]] 572 | name = "getrandom" 573 | version = "0.2.15" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 576 | dependencies = [ 577 | "cfg-if", 578 | "libc", 579 | "wasi", 580 | ] 581 | 582 | [[package]] 583 | name = "gimli" 584 | version = "0.31.1" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 587 | 588 | [[package]] 589 | name = "glob" 590 | version = "0.3.1" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 593 | 594 | [[package]] 595 | name = "half" 596 | version = "1.8.3" 597 | source = "registry+https://github.com/rust-lang/crates.io-index" 598 | checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" 599 | 600 | [[package]] 601 | name = "hash32" 602 | version = "0.3.1" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" 605 | dependencies = [ 606 | "byteorder", 607 | ] 608 | 609 | [[package]] 610 | name = "hashbrown" 611 | version = "0.15.1" 612 | source = "registry+https://github.com/rust-lang/crates.io-index" 613 | checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" 614 | 615 | [[package]] 616 | name = "heapless" 617 | version = "0.8.0" 618 | source = "registry+https://github.com/rust-lang/crates.io-index" 619 | checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" 620 | dependencies = [ 621 | "hash32", 622 | "stable_deref_trait", 623 | ] 624 | 625 | [[package]] 626 | name = "heck" 627 | version = "0.5.0" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 630 | 631 | [[package]] 632 | name = "hermit-abi" 633 | version = "0.3.9" 634 | source = "registry+https://github.com/rust-lang/crates.io-index" 635 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 636 | 637 | [[package]] 638 | name = "hermit-abi" 639 | version = "0.4.0" 640 | source = "registry+https://github.com/rust-lang/crates.io-index" 641 | checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" 642 | 643 | [[package]] 644 | name = "hmac" 645 | version = "0.12.1" 646 | source = "registry+https://github.com/rust-lang/crates.io-index" 647 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 648 | dependencies = [ 649 | "digest", 650 | ] 651 | 652 | [[package]] 653 | name = "home" 654 | version = "0.5.9" 655 | source = "registry+https://github.com/rust-lang/crates.io-index" 656 | checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" 657 | dependencies = [ 658 | "windows-sys 0.52.0", 659 | ] 660 | 661 | [[package]] 662 | name = "icu_collections" 663 | version = "1.5.0" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" 666 | dependencies = [ 667 | "displaydoc", 668 | "yoke", 669 | "zerofrom", 670 | "zerovec", 671 | ] 672 | 673 | [[package]] 674 | name = "icu_locid" 675 | version = "1.5.0" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" 678 | dependencies = [ 679 | "displaydoc", 680 | "litemap", 681 | "tinystr", 682 | "writeable", 683 | "zerovec", 684 | ] 685 | 686 | [[package]] 687 | name = "icu_locid_transform" 688 | version = "1.5.0" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" 691 | dependencies = [ 692 | "displaydoc", 693 | "icu_locid", 694 | "icu_locid_transform_data", 695 | "icu_provider", 696 | "tinystr", 697 | "zerovec", 698 | ] 699 | 700 | [[package]] 701 | name = "icu_locid_transform_data" 702 | version = "1.5.0" 703 | source = "registry+https://github.com/rust-lang/crates.io-index" 704 | checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" 705 | 706 | [[package]] 707 | name = "icu_normalizer" 708 | version = "1.5.0" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" 711 | dependencies = [ 712 | "displaydoc", 713 | "icu_collections", 714 | "icu_normalizer_data", 715 | "icu_properties", 716 | "icu_provider", 717 | "smallvec", 718 | "utf16_iter", 719 | "utf8_iter", 720 | "write16", 721 | "zerovec", 722 | ] 723 | 724 | [[package]] 725 | name = "icu_normalizer_data" 726 | version = "1.5.0" 727 | source = "registry+https://github.com/rust-lang/crates.io-index" 728 | checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" 729 | 730 | [[package]] 731 | name = "icu_properties" 732 | version = "1.5.1" 733 | source = "registry+https://github.com/rust-lang/crates.io-index" 734 | checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" 735 | dependencies = [ 736 | "displaydoc", 737 | "icu_collections", 738 | "icu_locid_transform", 739 | "icu_properties_data", 740 | "icu_provider", 741 | "tinystr", 742 | "zerovec", 743 | ] 744 | 745 | [[package]] 746 | name = "icu_properties_data" 747 | version = "1.5.0" 748 | source = "registry+https://github.com/rust-lang/crates.io-index" 749 | checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" 750 | 751 | [[package]] 752 | name = "icu_provider" 753 | version = "1.5.0" 754 | source = "registry+https://github.com/rust-lang/crates.io-index" 755 | checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" 756 | dependencies = [ 757 | "displaydoc", 758 | "icu_locid", 759 | "icu_provider_macros", 760 | "stable_deref_trait", 761 | "tinystr", 762 | "writeable", 763 | "yoke", 764 | "zerofrom", 765 | "zerovec", 766 | ] 767 | 768 | [[package]] 769 | name = "icu_provider_macros" 770 | version = "1.5.0" 771 | source = "registry+https://github.com/rust-lang/crates.io-index" 772 | checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" 773 | dependencies = [ 774 | "proc-macro2", 775 | "quote", 776 | "syn", 777 | ] 778 | 779 | [[package]] 780 | name = "idna" 781 | version = "1.0.3" 782 | source = "registry+https://github.com/rust-lang/crates.io-index" 783 | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 784 | dependencies = [ 785 | "idna_adapter", 786 | "smallvec", 787 | "utf8_iter", 788 | ] 789 | 790 | [[package]] 791 | name = "idna_adapter" 792 | version = "1.2.0" 793 | source = "registry+https://github.com/rust-lang/crates.io-index" 794 | checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" 795 | dependencies = [ 796 | "icu_normalizer", 797 | "icu_properties", 798 | ] 799 | 800 | [[package]] 801 | name = "indenter" 802 | version = "0.3.3" 803 | source = "registry+https://github.com/rust-lang/crates.io-index" 804 | checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" 805 | 806 | [[package]] 807 | name = "indexmap" 808 | version = "2.6.0" 809 | source = "registry+https://github.com/rust-lang/crates.io-index" 810 | checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" 811 | dependencies = [ 812 | "equivalent", 813 | "hashbrown", 814 | ] 815 | 816 | [[package]] 817 | name = "is-terminal" 818 | version = "0.4.13" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" 821 | dependencies = [ 822 | "hermit-abi 0.4.0", 823 | "libc", 824 | "windows-sys 0.52.0", 825 | ] 826 | 827 | [[package]] 828 | name = "is_ci" 829 | version = "1.2.0" 830 | source = "registry+https://github.com/rust-lang/crates.io-index" 831 | checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" 832 | 833 | [[package]] 834 | name = "itertools" 835 | version = "0.13.0" 836 | source = "registry+https://github.com/rust-lang/crates.io-index" 837 | checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 838 | dependencies = [ 839 | "either", 840 | ] 841 | 842 | [[package]] 843 | name = "itoa" 844 | version = "1.0.13" 845 | source = "registry+https://github.com/rust-lang/crates.io-index" 846 | checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" 847 | 848 | [[package]] 849 | name = "js-sys" 850 | version = "0.3.72" 851 | source = "registry+https://github.com/rust-lang/crates.io-index" 852 | checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" 853 | dependencies = [ 854 | "wasm-bindgen", 855 | ] 856 | 857 | [[package]] 858 | name = "kstring" 859 | version = "2.0.2" 860 | source = "registry+https://github.com/rust-lang/crates.io-index" 861 | checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" 862 | dependencies = [ 863 | "serde", 864 | "static_assertions", 865 | ] 866 | 867 | [[package]] 868 | name = "lazy_static" 869 | version = "1.5.0" 870 | source = "registry+https://github.com/rust-lang/crates.io-index" 871 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 872 | 873 | [[package]] 874 | name = "libc" 875 | version = "0.2.164" 876 | source = "registry+https://github.com/rust-lang/crates.io-index" 877 | checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" 878 | 879 | [[package]] 880 | name = "libloading" 881 | version = "0.8.5" 882 | source = "registry+https://github.com/rust-lang/crates.io-index" 883 | checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" 884 | dependencies = [ 885 | "cfg-if", 886 | "windows-targets", 887 | ] 888 | 889 | [[package]] 890 | name = "libm" 891 | version = "0.2.11" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" 894 | 895 | [[package]] 896 | name = "linux-raw-sys" 897 | version = "0.4.14" 898 | source = "registry+https://github.com/rust-lang/crates.io-index" 899 | checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 900 | 901 | [[package]] 902 | name = "liquid" 903 | version = "0.26.9" 904 | source = "registry+https://github.com/rust-lang/crates.io-index" 905 | checksum = "7cdcc72b82748f47c2933c172313f5a9aea5b2c4eb3fa4c66b4ea55bb60bb4b1" 906 | dependencies = [ 907 | "doc-comment", 908 | "liquid-core", 909 | "liquid-derive", 910 | "liquid-lib", 911 | "serde", 912 | ] 913 | 914 | [[package]] 915 | name = "liquid-core" 916 | version = "0.26.9" 917 | source = "registry+https://github.com/rust-lang/crates.io-index" 918 | checksum = "2752e978ffc53670f3f2e8b3ef09f348d6f7b5474a3be3f8a5befe5382e4effb" 919 | dependencies = [ 920 | "anymap2", 921 | "itertools", 922 | "kstring", 923 | "liquid-derive", 924 | "num-traits", 925 | "pest", 926 | "pest_derive", 927 | "regex", 928 | "serde", 929 | "time", 930 | ] 931 | 932 | [[package]] 933 | name = "liquid-derive" 934 | version = "0.26.8" 935 | source = "registry+https://github.com/rust-lang/crates.io-index" 936 | checksum = "3b51f1d220e3fa869e24cfd75915efe3164bd09bb11b3165db3f37f57bf673e3" 937 | dependencies = [ 938 | "proc-macro2", 939 | "quote", 940 | "syn", 941 | ] 942 | 943 | [[package]] 944 | name = "liquid-lib" 945 | version = "0.26.9" 946 | source = "registry+https://github.com/rust-lang/crates.io-index" 947 | checksum = "59b1a298d3d2287ee5b1e43840d885b8fdfc37d3f4e90d82aacfd04d021618da" 948 | dependencies = [ 949 | "itertools", 950 | "liquid-core", 951 | "once_cell", 952 | "percent-encoding", 953 | "regex", 954 | "time", 955 | "unicode-segmentation", 956 | ] 957 | 958 | [[package]] 959 | name = "litemap" 960 | version = "0.7.3" 961 | source = "registry+https://github.com/rust-lang/crates.io-index" 962 | checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" 963 | 964 | [[package]] 965 | name = "lock_api" 966 | version = "0.4.12" 967 | source = "registry+https://github.com/rust-lang/crates.io-index" 968 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 969 | dependencies = [ 970 | "autocfg", 971 | "scopeguard", 972 | ] 973 | 974 | [[package]] 975 | name = "log" 976 | version = "0.4.22" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 979 | 980 | [[package]] 981 | name = "md-5" 982 | version = "0.10.6" 983 | source = "registry+https://github.com/rust-lang/crates.io-index" 984 | checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" 985 | dependencies = [ 986 | "cfg-if", 987 | "digest", 988 | ] 989 | 990 | [[package]] 991 | name = "memchr" 992 | version = "2.7.4" 993 | source = "registry+https://github.com/rust-lang/crates.io-index" 994 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 995 | 996 | [[package]] 997 | name = "minimal-lexical" 998 | version = "0.2.1" 999 | source = "registry+https://github.com/rust-lang/crates.io-index" 1000 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1001 | 1002 | [[package]] 1003 | name = "miniz_oxide" 1004 | version = "0.8.0" 1005 | source = "registry+https://github.com/rust-lang/crates.io-index" 1006 | checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 1007 | dependencies = [ 1008 | "adler2", 1009 | ] 1010 | 1011 | [[package]] 1012 | name = "mio" 1013 | version = "1.0.2" 1014 | source = "registry+https://github.com/rust-lang/crates.io-index" 1015 | checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" 1016 | dependencies = [ 1017 | "hermit-abi 0.3.9", 1018 | "libc", 1019 | "wasi", 1020 | "windows-sys 0.52.0", 1021 | ] 1022 | 1023 | [[package]] 1024 | name = "nom" 1025 | version = "7.1.3" 1026 | source = "registry+https://github.com/rust-lang/crates.io-index" 1027 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 1028 | dependencies = [ 1029 | "memchr", 1030 | "minimal-lexical", 1031 | ] 1032 | 1033 | [[package]] 1034 | name = "ntapi" 1035 | version = "0.4.1" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" 1038 | dependencies = [ 1039 | "winapi", 1040 | ] 1041 | 1042 | [[package]] 1043 | name = "num-conv" 1044 | version = "0.1.0" 1045 | source = "registry+https://github.com/rust-lang/crates.io-index" 1046 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 1047 | 1048 | [[package]] 1049 | name = "num-traits" 1050 | version = "0.2.19" 1051 | source = "registry+https://github.com/rust-lang/crates.io-index" 1052 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1053 | dependencies = [ 1054 | "autocfg", 1055 | "libm", 1056 | ] 1057 | 1058 | [[package]] 1059 | name = "object" 1060 | version = "0.36.5" 1061 | source = "registry+https://github.com/rust-lang/crates.io-index" 1062 | checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" 1063 | dependencies = [ 1064 | "memchr", 1065 | ] 1066 | 1067 | [[package]] 1068 | name = "once_cell" 1069 | version = "1.20.2" 1070 | source = "registry+https://github.com/rust-lang/crates.io-index" 1071 | checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" 1072 | 1073 | [[package]] 1074 | name = "owo-colors" 1075 | version = "4.1.0" 1076 | source = "registry+https://github.com/rust-lang/crates.io-index" 1077 | checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" 1078 | dependencies = [ 1079 | "supports-color 2.1.0", 1080 | "supports-color 3.0.1", 1081 | ] 1082 | 1083 | [[package]] 1084 | name = "parking_lot" 1085 | version = "0.12.3" 1086 | source = "registry+https://github.com/rust-lang/crates.io-index" 1087 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1088 | dependencies = [ 1089 | "lock_api", 1090 | "parking_lot_core", 1091 | ] 1092 | 1093 | [[package]] 1094 | name = "parking_lot_core" 1095 | version = "0.9.10" 1096 | source = "registry+https://github.com/rust-lang/crates.io-index" 1097 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1098 | dependencies = [ 1099 | "cfg-if", 1100 | "libc", 1101 | "redox_syscall", 1102 | "smallvec", 1103 | "windows-targets", 1104 | ] 1105 | 1106 | [[package]] 1107 | name = "paste" 1108 | version = "1.0.15" 1109 | source = "registry+https://github.com/rust-lang/crates.io-index" 1110 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1111 | 1112 | [[package]] 1113 | name = "pathsearch" 1114 | version = "0.2.0" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "da983bc5e582ab17179c190b4b66c7d76c5943a69c6d34df2a2b6bf8a2977b05" 1117 | dependencies = [ 1118 | "anyhow", 1119 | "libc", 1120 | ] 1121 | 1122 | [[package]] 1123 | name = "percent-encoding" 1124 | version = "2.3.1" 1125 | source = "registry+https://github.com/rust-lang/crates.io-index" 1126 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1127 | 1128 | [[package]] 1129 | name = "pest" 1130 | version = "2.7.14" 1131 | source = "registry+https://github.com/rust-lang/crates.io-index" 1132 | checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" 1133 | dependencies = [ 1134 | "memchr", 1135 | "thiserror", 1136 | "ucd-trie", 1137 | ] 1138 | 1139 | [[package]] 1140 | name = "pest_derive" 1141 | version = "2.7.14" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" 1144 | dependencies = [ 1145 | "pest", 1146 | "pest_generator", 1147 | ] 1148 | 1149 | [[package]] 1150 | name = "pest_generator" 1151 | version = "2.7.14" 1152 | source = "registry+https://github.com/rust-lang/crates.io-index" 1153 | checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" 1154 | dependencies = [ 1155 | "pest", 1156 | "pest_meta", 1157 | "proc-macro2", 1158 | "quote", 1159 | "syn", 1160 | ] 1161 | 1162 | [[package]] 1163 | name = "pest_meta" 1164 | version = "2.7.14" 1165 | source = "registry+https://github.com/rust-lang/crates.io-index" 1166 | checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" 1167 | dependencies = [ 1168 | "once_cell", 1169 | "pest", 1170 | "sha2", 1171 | ] 1172 | 1173 | [[package]] 1174 | name = "petgraph" 1175 | version = "0.6.5" 1176 | source = "registry+https://github.com/rust-lang/crates.io-index" 1177 | checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" 1178 | dependencies = [ 1179 | "fixedbitset", 1180 | "indexmap", 1181 | ] 1182 | 1183 | [[package]] 1184 | name = "pg_render" 1185 | version = "0.1.2" 1186 | dependencies = [ 1187 | "liquid", 1188 | "pgrx", 1189 | "pgrx-tests", 1190 | ] 1191 | 1192 | [[package]] 1193 | name = "pgrx" 1194 | version = "0.12.8" 1195 | source = "registry+https://github.com/rust-lang/crates.io-index" 1196 | checksum = "c6468e2a7c4085707209cf7f7e14a7b73c8b7f41fc716283024a09180b620a45" 1197 | dependencies = [ 1198 | "atomic-traits", 1199 | "bitflags", 1200 | "bitvec", 1201 | "enum-map", 1202 | "heapless", 1203 | "libc", 1204 | "once_cell", 1205 | "pgrx-macros", 1206 | "pgrx-pg-sys", 1207 | "pgrx-sql-entity-graph", 1208 | "seahash", 1209 | "serde", 1210 | "serde_cbor", 1211 | "serde_json", 1212 | "thiserror", 1213 | "uuid", 1214 | ] 1215 | 1216 | [[package]] 1217 | name = "pgrx-bindgen" 1218 | version = "0.12.8" 1219 | source = "registry+https://github.com/rust-lang/crates.io-index" 1220 | checksum = "04d822012e4919882cb9b1851ae9e4b4b03703ddf2ef4af3522025c8944e9c7d" 1221 | dependencies = [ 1222 | "bindgen", 1223 | "cc", 1224 | "clang-sys", 1225 | "eyre", 1226 | "pgrx-pg-config", 1227 | "proc-macro2", 1228 | "quote", 1229 | "shlex", 1230 | "syn", 1231 | "walkdir", 1232 | ] 1233 | 1234 | [[package]] 1235 | name = "pgrx-macros" 1236 | version = "0.12.8" 1237 | source = "registry+https://github.com/rust-lang/crates.io-index" 1238 | checksum = "52ffdb879a3880d3034661b4d19f802029abfcde6b8232299f4d4d2c202680af" 1239 | dependencies = [ 1240 | "pgrx-sql-entity-graph", 1241 | "proc-macro2", 1242 | "quote", 1243 | "syn", 1244 | ] 1245 | 1246 | [[package]] 1247 | name = "pgrx-pg-config" 1248 | version = "0.12.8" 1249 | source = "registry+https://github.com/rust-lang/crates.io-index" 1250 | checksum = "945d664e710e4dcccd459628c6e58b3ccbd0495d2ed751b1d6f73996ceca01a2" 1251 | dependencies = [ 1252 | "cargo_toml", 1253 | "eyre", 1254 | "home", 1255 | "owo-colors", 1256 | "pathsearch", 1257 | "serde", 1258 | "serde_json", 1259 | "thiserror", 1260 | "toml", 1261 | "url", 1262 | ] 1263 | 1264 | [[package]] 1265 | name = "pgrx-pg-sys" 1266 | version = "0.12.8" 1267 | source = "registry+https://github.com/rust-lang/crates.io-index" 1268 | checksum = "489c96adc8af0b917165f47a11e25f77753e227144aa3790be7e241afab9886c" 1269 | dependencies = [ 1270 | "cee-scape", 1271 | "libc", 1272 | "pgrx-bindgen", 1273 | "pgrx-macros", 1274 | "pgrx-sql-entity-graph", 1275 | "serde", 1276 | "sptr", 1277 | ] 1278 | 1279 | [[package]] 1280 | name = "pgrx-sql-entity-graph" 1281 | version = "0.12.8" 1282 | source = "registry+https://github.com/rust-lang/crates.io-index" 1283 | checksum = "de77a74f3dc80283a97322ab4d65f9f81691eb54d0a5b7c37b93686d351c6096" 1284 | dependencies = [ 1285 | "convert_case", 1286 | "eyre", 1287 | "petgraph", 1288 | "proc-macro2", 1289 | "quote", 1290 | "syn", 1291 | "thiserror", 1292 | "unescape", 1293 | ] 1294 | 1295 | [[package]] 1296 | name = "pgrx-tests" 1297 | version = "0.12.8" 1298 | source = "registry+https://github.com/rust-lang/crates.io-index" 1299 | checksum = "73cbf89286dda64fb8ee2126794d140de2294d0b8e04604b5ecddd6ee291fbae" 1300 | dependencies = [ 1301 | "clap-cargo", 1302 | "eyre", 1303 | "libc", 1304 | "owo-colors", 1305 | "paste", 1306 | "pgrx", 1307 | "pgrx-macros", 1308 | "pgrx-pg-config", 1309 | "postgres", 1310 | "proptest", 1311 | "rand", 1312 | "regex", 1313 | "serde", 1314 | "serde_json", 1315 | "sysinfo", 1316 | "thiserror", 1317 | ] 1318 | 1319 | [[package]] 1320 | name = "phf" 1321 | version = "0.11.2" 1322 | source = "registry+https://github.com/rust-lang/crates.io-index" 1323 | checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" 1324 | dependencies = [ 1325 | "phf_shared", 1326 | ] 1327 | 1328 | [[package]] 1329 | name = "phf_shared" 1330 | version = "0.11.2" 1331 | source = "registry+https://github.com/rust-lang/crates.io-index" 1332 | checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" 1333 | dependencies = [ 1334 | "siphasher", 1335 | ] 1336 | 1337 | [[package]] 1338 | name = "pin-project-lite" 1339 | version = "0.2.15" 1340 | source = "registry+https://github.com/rust-lang/crates.io-index" 1341 | checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" 1342 | 1343 | [[package]] 1344 | name = "pin-utils" 1345 | version = "0.1.0" 1346 | source = "registry+https://github.com/rust-lang/crates.io-index" 1347 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1348 | 1349 | [[package]] 1350 | name = "postgres" 1351 | version = "0.19.9" 1352 | source = "registry+https://github.com/rust-lang/crates.io-index" 1353 | checksum = "95c918733159f4d55d2ceb262950f00b0aebd6af4aa97b5a47bb0655120475ed" 1354 | dependencies = [ 1355 | "bytes", 1356 | "fallible-iterator", 1357 | "futures-util", 1358 | "log", 1359 | "tokio", 1360 | "tokio-postgres", 1361 | ] 1362 | 1363 | [[package]] 1364 | name = "postgres-protocol" 1365 | version = "0.6.7" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "acda0ebdebc28befa84bee35e651e4c5f09073d668c7aed4cf7e23c3cda84b23" 1368 | dependencies = [ 1369 | "base64", 1370 | "byteorder", 1371 | "bytes", 1372 | "fallible-iterator", 1373 | "hmac", 1374 | "md-5", 1375 | "memchr", 1376 | "rand", 1377 | "sha2", 1378 | "stringprep", 1379 | ] 1380 | 1381 | [[package]] 1382 | name = "postgres-types" 1383 | version = "0.2.8" 1384 | source = "registry+https://github.com/rust-lang/crates.io-index" 1385 | checksum = "f66ea23a2d0e5734297357705193335e0a957696f34bed2f2faefacb2fec336f" 1386 | dependencies = [ 1387 | "bytes", 1388 | "fallible-iterator", 1389 | "postgres-protocol", 1390 | ] 1391 | 1392 | [[package]] 1393 | name = "powerfmt" 1394 | version = "0.2.0" 1395 | source = "registry+https://github.com/rust-lang/crates.io-index" 1396 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 1397 | 1398 | [[package]] 1399 | name = "ppv-lite86" 1400 | version = "0.2.20" 1401 | source = "registry+https://github.com/rust-lang/crates.io-index" 1402 | checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 1403 | dependencies = [ 1404 | "zerocopy", 1405 | ] 1406 | 1407 | [[package]] 1408 | name = "proc-macro2" 1409 | version = "1.0.91" 1410 | source = "registry+https://github.com/rust-lang/crates.io-index" 1411 | checksum = "307e3004becf10f5a6e0d59d20f3cd28231b0e0827a96cd3e0ce6d14bc1e4bb3" 1412 | dependencies = [ 1413 | "unicode-ident", 1414 | ] 1415 | 1416 | [[package]] 1417 | name = "proptest" 1418 | version = "1.5.0" 1419 | source = "registry+https://github.com/rust-lang/crates.io-index" 1420 | checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" 1421 | dependencies = [ 1422 | "bit-set", 1423 | "bit-vec", 1424 | "bitflags", 1425 | "lazy_static", 1426 | "num-traits", 1427 | "rand", 1428 | "rand_chacha", 1429 | "rand_xorshift", 1430 | "regex-syntax", 1431 | "rusty-fork", 1432 | "tempfile", 1433 | "unarray", 1434 | ] 1435 | 1436 | [[package]] 1437 | name = "quick-error" 1438 | version = "1.2.3" 1439 | source = "registry+https://github.com/rust-lang/crates.io-index" 1440 | checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" 1441 | 1442 | [[package]] 1443 | name = "quote" 1444 | version = "1.0.37" 1445 | source = "registry+https://github.com/rust-lang/crates.io-index" 1446 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 1447 | dependencies = [ 1448 | "proc-macro2", 1449 | ] 1450 | 1451 | [[package]] 1452 | name = "radium" 1453 | version = "0.7.0" 1454 | source = "registry+https://github.com/rust-lang/crates.io-index" 1455 | checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 1456 | 1457 | [[package]] 1458 | name = "rand" 1459 | version = "0.8.5" 1460 | source = "registry+https://github.com/rust-lang/crates.io-index" 1461 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1462 | dependencies = [ 1463 | "libc", 1464 | "rand_chacha", 1465 | "rand_core", 1466 | ] 1467 | 1468 | [[package]] 1469 | name = "rand_chacha" 1470 | version = "0.3.1" 1471 | source = "registry+https://github.com/rust-lang/crates.io-index" 1472 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1473 | dependencies = [ 1474 | "ppv-lite86", 1475 | "rand_core", 1476 | ] 1477 | 1478 | [[package]] 1479 | name = "rand_core" 1480 | version = "0.6.4" 1481 | source = "registry+https://github.com/rust-lang/crates.io-index" 1482 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1483 | dependencies = [ 1484 | "getrandom", 1485 | ] 1486 | 1487 | [[package]] 1488 | name = "rand_xorshift" 1489 | version = "0.3.0" 1490 | source = "registry+https://github.com/rust-lang/crates.io-index" 1491 | checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" 1492 | dependencies = [ 1493 | "rand_core", 1494 | ] 1495 | 1496 | [[package]] 1497 | name = "rayon" 1498 | version = "1.10.0" 1499 | source = "registry+https://github.com/rust-lang/crates.io-index" 1500 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 1501 | dependencies = [ 1502 | "either", 1503 | "rayon-core", 1504 | ] 1505 | 1506 | [[package]] 1507 | name = "rayon-core" 1508 | version = "1.12.1" 1509 | source = "registry+https://github.com/rust-lang/crates.io-index" 1510 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 1511 | dependencies = [ 1512 | "crossbeam-deque", 1513 | "crossbeam-utils", 1514 | ] 1515 | 1516 | [[package]] 1517 | name = "redox_syscall" 1518 | version = "0.5.7" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" 1521 | dependencies = [ 1522 | "bitflags", 1523 | ] 1524 | 1525 | [[package]] 1526 | name = "regex" 1527 | version = "1.11.1" 1528 | source = "registry+https://github.com/rust-lang/crates.io-index" 1529 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 1530 | dependencies = [ 1531 | "aho-corasick", 1532 | "memchr", 1533 | "regex-automata", 1534 | "regex-syntax", 1535 | ] 1536 | 1537 | [[package]] 1538 | name = "regex-automata" 1539 | version = "0.4.9" 1540 | source = "registry+https://github.com/rust-lang/crates.io-index" 1541 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 1542 | dependencies = [ 1543 | "aho-corasick", 1544 | "memchr", 1545 | "regex-syntax", 1546 | ] 1547 | 1548 | [[package]] 1549 | name = "regex-syntax" 1550 | version = "0.8.5" 1551 | source = "registry+https://github.com/rust-lang/crates.io-index" 1552 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1553 | 1554 | [[package]] 1555 | name = "rustc-demangle" 1556 | version = "0.1.24" 1557 | source = "registry+https://github.com/rust-lang/crates.io-index" 1558 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 1559 | 1560 | [[package]] 1561 | name = "rustc-hash" 1562 | version = "1.1.0" 1563 | source = "registry+https://github.com/rust-lang/crates.io-index" 1564 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1565 | 1566 | [[package]] 1567 | name = "rustc_version" 1568 | version = "0.3.3" 1569 | source = "registry+https://github.com/rust-lang/crates.io-index" 1570 | checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" 1571 | dependencies = [ 1572 | "semver 0.11.0", 1573 | ] 1574 | 1575 | [[package]] 1576 | name = "rustix" 1577 | version = "0.38.41" 1578 | source = "registry+https://github.com/rust-lang/crates.io-index" 1579 | checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" 1580 | dependencies = [ 1581 | "bitflags", 1582 | "errno", 1583 | "libc", 1584 | "linux-raw-sys", 1585 | "windows-sys 0.52.0", 1586 | ] 1587 | 1588 | [[package]] 1589 | name = "rusty-fork" 1590 | version = "0.3.0" 1591 | source = "registry+https://github.com/rust-lang/crates.io-index" 1592 | checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" 1593 | dependencies = [ 1594 | "fnv", 1595 | "quick-error", 1596 | "tempfile", 1597 | "wait-timeout", 1598 | ] 1599 | 1600 | [[package]] 1601 | name = "ryu" 1602 | version = "1.0.18" 1603 | source = "registry+https://github.com/rust-lang/crates.io-index" 1604 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1605 | 1606 | [[package]] 1607 | name = "same-file" 1608 | version = "1.0.6" 1609 | source = "registry+https://github.com/rust-lang/crates.io-index" 1610 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1611 | dependencies = [ 1612 | "winapi-util", 1613 | ] 1614 | 1615 | [[package]] 1616 | name = "scopeguard" 1617 | version = "1.2.0" 1618 | source = "registry+https://github.com/rust-lang/crates.io-index" 1619 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1620 | 1621 | [[package]] 1622 | name = "seahash" 1623 | version = "4.1.0" 1624 | source = "registry+https://github.com/rust-lang/crates.io-index" 1625 | checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" 1626 | 1627 | [[package]] 1628 | name = "semver" 1629 | version = "0.11.0" 1630 | source = "registry+https://github.com/rust-lang/crates.io-index" 1631 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 1632 | dependencies = [ 1633 | "semver-parser", 1634 | ] 1635 | 1636 | [[package]] 1637 | name = "semver" 1638 | version = "1.0.23" 1639 | source = "registry+https://github.com/rust-lang/crates.io-index" 1640 | checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 1641 | dependencies = [ 1642 | "serde", 1643 | ] 1644 | 1645 | [[package]] 1646 | name = "semver-parser" 1647 | version = "0.10.3" 1648 | source = "registry+https://github.com/rust-lang/crates.io-index" 1649 | checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" 1650 | dependencies = [ 1651 | "pest", 1652 | ] 1653 | 1654 | [[package]] 1655 | name = "serde" 1656 | version = "1.0.215" 1657 | source = "registry+https://github.com/rust-lang/crates.io-index" 1658 | checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" 1659 | dependencies = [ 1660 | "serde_derive", 1661 | ] 1662 | 1663 | [[package]] 1664 | name = "serde_cbor" 1665 | version = "0.11.2" 1666 | source = "registry+https://github.com/rust-lang/crates.io-index" 1667 | checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" 1668 | dependencies = [ 1669 | "half", 1670 | "serde", 1671 | ] 1672 | 1673 | [[package]] 1674 | name = "serde_derive" 1675 | version = "1.0.215" 1676 | source = "registry+https://github.com/rust-lang/crates.io-index" 1677 | checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" 1678 | dependencies = [ 1679 | "proc-macro2", 1680 | "quote", 1681 | "syn", 1682 | ] 1683 | 1684 | [[package]] 1685 | name = "serde_json" 1686 | version = "1.0.133" 1687 | source = "registry+https://github.com/rust-lang/crates.io-index" 1688 | checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" 1689 | dependencies = [ 1690 | "itoa", 1691 | "memchr", 1692 | "ryu", 1693 | "serde", 1694 | ] 1695 | 1696 | [[package]] 1697 | name = "serde_spanned" 1698 | version = "0.6.8" 1699 | source = "registry+https://github.com/rust-lang/crates.io-index" 1700 | checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" 1701 | dependencies = [ 1702 | "serde", 1703 | ] 1704 | 1705 | [[package]] 1706 | name = "sha2" 1707 | version = "0.10.8" 1708 | source = "registry+https://github.com/rust-lang/crates.io-index" 1709 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 1710 | dependencies = [ 1711 | "cfg-if", 1712 | "cpufeatures", 1713 | "digest", 1714 | ] 1715 | 1716 | [[package]] 1717 | name = "shlex" 1718 | version = "1.3.0" 1719 | source = "registry+https://github.com/rust-lang/crates.io-index" 1720 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1721 | 1722 | [[package]] 1723 | name = "siphasher" 1724 | version = "0.3.11" 1725 | source = "registry+https://github.com/rust-lang/crates.io-index" 1726 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 1727 | 1728 | [[package]] 1729 | name = "slab" 1730 | version = "0.4.9" 1731 | source = "registry+https://github.com/rust-lang/crates.io-index" 1732 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1733 | dependencies = [ 1734 | "autocfg", 1735 | ] 1736 | 1737 | [[package]] 1738 | name = "smallvec" 1739 | version = "1.13.2" 1740 | source = "registry+https://github.com/rust-lang/crates.io-index" 1741 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1742 | 1743 | [[package]] 1744 | name = "socket2" 1745 | version = "0.5.7" 1746 | source = "registry+https://github.com/rust-lang/crates.io-index" 1747 | checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 1748 | dependencies = [ 1749 | "libc", 1750 | "windows-sys 0.52.0", 1751 | ] 1752 | 1753 | [[package]] 1754 | name = "sptr" 1755 | version = "0.3.2" 1756 | source = "registry+https://github.com/rust-lang/crates.io-index" 1757 | checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" 1758 | 1759 | [[package]] 1760 | name = "stable_deref_trait" 1761 | version = "1.2.0" 1762 | source = "registry+https://github.com/rust-lang/crates.io-index" 1763 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1764 | 1765 | [[package]] 1766 | name = "static_assertions" 1767 | version = "1.1.0" 1768 | source = "registry+https://github.com/rust-lang/crates.io-index" 1769 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1770 | 1771 | [[package]] 1772 | name = "stringprep" 1773 | version = "0.1.5" 1774 | source = "registry+https://github.com/rust-lang/crates.io-index" 1775 | checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" 1776 | dependencies = [ 1777 | "unicode-bidi", 1778 | "unicode-normalization", 1779 | "unicode-properties", 1780 | ] 1781 | 1782 | [[package]] 1783 | name = "subtle" 1784 | version = "2.6.1" 1785 | source = "registry+https://github.com/rust-lang/crates.io-index" 1786 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1787 | 1788 | [[package]] 1789 | name = "supports-color" 1790 | version = "2.1.0" 1791 | source = "registry+https://github.com/rust-lang/crates.io-index" 1792 | checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89" 1793 | dependencies = [ 1794 | "is-terminal", 1795 | "is_ci", 1796 | ] 1797 | 1798 | [[package]] 1799 | name = "supports-color" 1800 | version = "3.0.1" 1801 | source = "registry+https://github.com/rust-lang/crates.io-index" 1802 | checksum = "8775305acf21c96926c900ad056abeef436701108518cf890020387236ac5a77" 1803 | dependencies = [ 1804 | "is_ci", 1805 | ] 1806 | 1807 | [[package]] 1808 | name = "syn" 1809 | version = "2.0.89" 1810 | source = "registry+https://github.com/rust-lang/crates.io-index" 1811 | checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" 1812 | dependencies = [ 1813 | "proc-macro2", 1814 | "quote", 1815 | "unicode-ident", 1816 | ] 1817 | 1818 | [[package]] 1819 | name = "synstructure" 1820 | version = "0.13.1" 1821 | source = "registry+https://github.com/rust-lang/crates.io-index" 1822 | checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 1823 | dependencies = [ 1824 | "proc-macro2", 1825 | "quote", 1826 | "syn", 1827 | ] 1828 | 1829 | [[package]] 1830 | name = "sysinfo" 1831 | version = "0.30.13" 1832 | source = "registry+https://github.com/rust-lang/crates.io-index" 1833 | checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" 1834 | dependencies = [ 1835 | "cfg-if", 1836 | "core-foundation-sys", 1837 | "libc", 1838 | "ntapi", 1839 | "once_cell", 1840 | "rayon", 1841 | "windows", 1842 | ] 1843 | 1844 | [[package]] 1845 | name = "tap" 1846 | version = "1.0.1" 1847 | source = "registry+https://github.com/rust-lang/crates.io-index" 1848 | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 1849 | 1850 | [[package]] 1851 | name = "tempfile" 1852 | version = "3.14.0" 1853 | source = "registry+https://github.com/rust-lang/crates.io-index" 1854 | checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" 1855 | dependencies = [ 1856 | "cfg-if", 1857 | "fastrand", 1858 | "once_cell", 1859 | "rustix", 1860 | "windows-sys 0.59.0", 1861 | ] 1862 | 1863 | [[package]] 1864 | name = "thiserror" 1865 | version = "1.0.69" 1866 | source = "registry+https://github.com/rust-lang/crates.io-index" 1867 | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1868 | dependencies = [ 1869 | "thiserror-impl", 1870 | ] 1871 | 1872 | [[package]] 1873 | name = "thiserror-impl" 1874 | version = "1.0.69" 1875 | source = "registry+https://github.com/rust-lang/crates.io-index" 1876 | checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 1877 | dependencies = [ 1878 | "proc-macro2", 1879 | "quote", 1880 | "syn", 1881 | ] 1882 | 1883 | [[package]] 1884 | name = "time" 1885 | version = "0.3.36" 1886 | source = "registry+https://github.com/rust-lang/crates.io-index" 1887 | checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 1888 | dependencies = [ 1889 | "deranged", 1890 | "itoa", 1891 | "num-conv", 1892 | "powerfmt", 1893 | "serde", 1894 | "time-core", 1895 | "time-macros", 1896 | ] 1897 | 1898 | [[package]] 1899 | name = "time-core" 1900 | version = "0.1.2" 1901 | source = "registry+https://github.com/rust-lang/crates.io-index" 1902 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 1903 | 1904 | [[package]] 1905 | name = "time-macros" 1906 | version = "0.2.18" 1907 | source = "registry+https://github.com/rust-lang/crates.io-index" 1908 | checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" 1909 | dependencies = [ 1910 | "num-conv", 1911 | "time-core", 1912 | ] 1913 | 1914 | [[package]] 1915 | name = "tinystr" 1916 | version = "0.7.6" 1917 | source = "registry+https://github.com/rust-lang/crates.io-index" 1918 | checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" 1919 | dependencies = [ 1920 | "displaydoc", 1921 | "zerovec", 1922 | ] 1923 | 1924 | [[package]] 1925 | name = "tinyvec" 1926 | version = "1.8.0" 1927 | source = "registry+https://github.com/rust-lang/crates.io-index" 1928 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 1929 | dependencies = [ 1930 | "tinyvec_macros", 1931 | ] 1932 | 1933 | [[package]] 1934 | name = "tinyvec_macros" 1935 | version = "0.1.1" 1936 | source = "registry+https://github.com/rust-lang/crates.io-index" 1937 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1938 | 1939 | [[package]] 1940 | name = "tokio" 1941 | version = "1.41.1" 1942 | source = "registry+https://github.com/rust-lang/crates.io-index" 1943 | checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" 1944 | dependencies = [ 1945 | "backtrace", 1946 | "bytes", 1947 | "libc", 1948 | "mio", 1949 | "pin-project-lite", 1950 | "socket2", 1951 | "windows-sys 0.52.0", 1952 | ] 1953 | 1954 | [[package]] 1955 | name = "tokio-postgres" 1956 | version = "0.7.12" 1957 | source = "registry+https://github.com/rust-lang/crates.io-index" 1958 | checksum = "3b5d3742945bc7d7f210693b0c58ae542c6fd47b17adbbda0885f3dcb34a6bdb" 1959 | dependencies = [ 1960 | "async-trait", 1961 | "byteorder", 1962 | "bytes", 1963 | "fallible-iterator", 1964 | "futures-channel", 1965 | "futures-util", 1966 | "log", 1967 | "parking_lot", 1968 | "percent-encoding", 1969 | "phf", 1970 | "pin-project-lite", 1971 | "postgres-protocol", 1972 | "postgres-types", 1973 | "rand", 1974 | "socket2", 1975 | "tokio", 1976 | "tokio-util", 1977 | "whoami", 1978 | ] 1979 | 1980 | [[package]] 1981 | name = "tokio-util" 1982 | version = "0.7.12" 1983 | source = "registry+https://github.com/rust-lang/crates.io-index" 1984 | checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" 1985 | dependencies = [ 1986 | "bytes", 1987 | "futures-core", 1988 | "futures-sink", 1989 | "pin-project-lite", 1990 | "tokio", 1991 | ] 1992 | 1993 | [[package]] 1994 | name = "toml" 1995 | version = "0.8.19" 1996 | source = "registry+https://github.com/rust-lang/crates.io-index" 1997 | checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" 1998 | dependencies = [ 1999 | "serde", 2000 | "serde_spanned", 2001 | "toml_datetime", 2002 | "toml_edit", 2003 | ] 2004 | 2005 | [[package]] 2006 | name = "toml_datetime" 2007 | version = "0.6.8" 2008 | source = "registry+https://github.com/rust-lang/crates.io-index" 2009 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 2010 | dependencies = [ 2011 | "serde", 2012 | ] 2013 | 2014 | [[package]] 2015 | name = "toml_edit" 2016 | version = "0.22.22" 2017 | source = "registry+https://github.com/rust-lang/crates.io-index" 2018 | checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" 2019 | dependencies = [ 2020 | "indexmap", 2021 | "serde", 2022 | "serde_spanned", 2023 | "toml_datetime", 2024 | "winnow", 2025 | ] 2026 | 2027 | [[package]] 2028 | name = "typenum" 2029 | version = "1.17.0" 2030 | source = "registry+https://github.com/rust-lang/crates.io-index" 2031 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 2032 | 2033 | [[package]] 2034 | name = "ucd-trie" 2035 | version = "0.1.7" 2036 | source = "registry+https://github.com/rust-lang/crates.io-index" 2037 | checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" 2038 | 2039 | [[package]] 2040 | name = "unarray" 2041 | version = "0.1.4" 2042 | source = "registry+https://github.com/rust-lang/crates.io-index" 2043 | checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" 2044 | 2045 | [[package]] 2046 | name = "unescape" 2047 | version = "0.1.0" 2048 | source = "registry+https://github.com/rust-lang/crates.io-index" 2049 | checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" 2050 | 2051 | [[package]] 2052 | name = "unicode-bidi" 2053 | version = "0.3.17" 2054 | source = "registry+https://github.com/rust-lang/crates.io-index" 2055 | checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" 2056 | 2057 | [[package]] 2058 | name = "unicode-ident" 2059 | version = "1.0.14" 2060 | source = "registry+https://github.com/rust-lang/crates.io-index" 2061 | checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" 2062 | 2063 | [[package]] 2064 | name = "unicode-normalization" 2065 | version = "0.1.24" 2066 | source = "registry+https://github.com/rust-lang/crates.io-index" 2067 | checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 2068 | dependencies = [ 2069 | "tinyvec", 2070 | ] 2071 | 2072 | [[package]] 2073 | name = "unicode-properties" 2074 | version = "0.1.3" 2075 | source = "registry+https://github.com/rust-lang/crates.io-index" 2076 | checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" 2077 | 2078 | [[package]] 2079 | name = "unicode-segmentation" 2080 | version = "1.12.0" 2081 | source = "registry+https://github.com/rust-lang/crates.io-index" 2082 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 2083 | 2084 | [[package]] 2085 | name = "unicode-width" 2086 | version = "0.1.14" 2087 | source = "registry+https://github.com/rust-lang/crates.io-index" 2088 | checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 2089 | 2090 | [[package]] 2091 | name = "url" 2092 | version = "2.5.3" 2093 | source = "registry+https://github.com/rust-lang/crates.io-index" 2094 | checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" 2095 | dependencies = [ 2096 | "form_urlencoded", 2097 | "idna", 2098 | "percent-encoding", 2099 | ] 2100 | 2101 | [[package]] 2102 | name = "utf16_iter" 2103 | version = "1.0.5" 2104 | source = "registry+https://github.com/rust-lang/crates.io-index" 2105 | checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" 2106 | 2107 | [[package]] 2108 | name = "utf8_iter" 2109 | version = "1.0.4" 2110 | source = "registry+https://github.com/rust-lang/crates.io-index" 2111 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2112 | 2113 | [[package]] 2114 | name = "uuid" 2115 | version = "1.11.0" 2116 | source = "registry+https://github.com/rust-lang/crates.io-index" 2117 | checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" 2118 | dependencies = [ 2119 | "getrandom", 2120 | ] 2121 | 2122 | [[package]] 2123 | name = "version_check" 2124 | version = "0.9.5" 2125 | source = "registry+https://github.com/rust-lang/crates.io-index" 2126 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2127 | 2128 | [[package]] 2129 | name = "wait-timeout" 2130 | version = "0.2.0" 2131 | source = "registry+https://github.com/rust-lang/crates.io-index" 2132 | checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" 2133 | dependencies = [ 2134 | "libc", 2135 | ] 2136 | 2137 | [[package]] 2138 | name = "walkdir" 2139 | version = "2.5.0" 2140 | source = "registry+https://github.com/rust-lang/crates.io-index" 2141 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 2142 | dependencies = [ 2143 | "same-file", 2144 | "winapi-util", 2145 | ] 2146 | 2147 | [[package]] 2148 | name = "wasi" 2149 | version = "0.11.0+wasi-snapshot-preview1" 2150 | source = "registry+https://github.com/rust-lang/crates.io-index" 2151 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2152 | 2153 | [[package]] 2154 | name = "wasite" 2155 | version = "0.1.0" 2156 | source = "registry+https://github.com/rust-lang/crates.io-index" 2157 | checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" 2158 | 2159 | [[package]] 2160 | name = "wasm-bindgen" 2161 | version = "0.2.95" 2162 | source = "registry+https://github.com/rust-lang/crates.io-index" 2163 | checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" 2164 | dependencies = [ 2165 | "cfg-if", 2166 | "once_cell", 2167 | "wasm-bindgen-macro", 2168 | ] 2169 | 2170 | [[package]] 2171 | name = "wasm-bindgen-backend" 2172 | version = "0.2.95" 2173 | source = "registry+https://github.com/rust-lang/crates.io-index" 2174 | checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" 2175 | dependencies = [ 2176 | "bumpalo", 2177 | "log", 2178 | "once_cell", 2179 | "proc-macro2", 2180 | "quote", 2181 | "syn", 2182 | "wasm-bindgen-shared", 2183 | ] 2184 | 2185 | [[package]] 2186 | name = "wasm-bindgen-macro" 2187 | version = "0.2.95" 2188 | source = "registry+https://github.com/rust-lang/crates.io-index" 2189 | checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" 2190 | dependencies = [ 2191 | "quote", 2192 | "wasm-bindgen-macro-support", 2193 | ] 2194 | 2195 | [[package]] 2196 | name = "wasm-bindgen-macro-support" 2197 | version = "0.2.95" 2198 | source = "registry+https://github.com/rust-lang/crates.io-index" 2199 | checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" 2200 | dependencies = [ 2201 | "proc-macro2", 2202 | "quote", 2203 | "syn", 2204 | "wasm-bindgen-backend", 2205 | "wasm-bindgen-shared", 2206 | ] 2207 | 2208 | [[package]] 2209 | name = "wasm-bindgen-shared" 2210 | version = "0.2.95" 2211 | source = "registry+https://github.com/rust-lang/crates.io-index" 2212 | checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" 2213 | 2214 | [[package]] 2215 | name = "web-sys" 2216 | version = "0.3.72" 2217 | source = "registry+https://github.com/rust-lang/crates.io-index" 2218 | checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" 2219 | dependencies = [ 2220 | "js-sys", 2221 | "wasm-bindgen", 2222 | ] 2223 | 2224 | [[package]] 2225 | name = "whoami" 2226 | version = "1.5.2" 2227 | source = "registry+https://github.com/rust-lang/crates.io-index" 2228 | checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" 2229 | dependencies = [ 2230 | "redox_syscall", 2231 | "wasite", 2232 | "web-sys", 2233 | ] 2234 | 2235 | [[package]] 2236 | name = "winapi" 2237 | version = "0.3.9" 2238 | source = "registry+https://github.com/rust-lang/crates.io-index" 2239 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2240 | dependencies = [ 2241 | "winapi-i686-pc-windows-gnu", 2242 | "winapi-x86_64-pc-windows-gnu", 2243 | ] 2244 | 2245 | [[package]] 2246 | name = "winapi-i686-pc-windows-gnu" 2247 | version = "0.4.0" 2248 | source = "registry+https://github.com/rust-lang/crates.io-index" 2249 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2250 | 2251 | [[package]] 2252 | name = "winapi-util" 2253 | version = "0.1.9" 2254 | source = "registry+https://github.com/rust-lang/crates.io-index" 2255 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 2256 | dependencies = [ 2257 | "windows-sys 0.59.0", 2258 | ] 2259 | 2260 | [[package]] 2261 | name = "winapi-x86_64-pc-windows-gnu" 2262 | version = "0.4.0" 2263 | source = "registry+https://github.com/rust-lang/crates.io-index" 2264 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2265 | 2266 | [[package]] 2267 | name = "windows" 2268 | version = "0.52.0" 2269 | source = "registry+https://github.com/rust-lang/crates.io-index" 2270 | checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" 2271 | dependencies = [ 2272 | "windows-core", 2273 | "windows-targets", 2274 | ] 2275 | 2276 | [[package]] 2277 | name = "windows-core" 2278 | version = "0.52.0" 2279 | source = "registry+https://github.com/rust-lang/crates.io-index" 2280 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 2281 | dependencies = [ 2282 | "windows-targets", 2283 | ] 2284 | 2285 | [[package]] 2286 | name = "windows-sys" 2287 | version = "0.52.0" 2288 | source = "registry+https://github.com/rust-lang/crates.io-index" 2289 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2290 | dependencies = [ 2291 | "windows-targets", 2292 | ] 2293 | 2294 | [[package]] 2295 | name = "windows-sys" 2296 | version = "0.59.0" 2297 | source = "registry+https://github.com/rust-lang/crates.io-index" 2298 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 2299 | dependencies = [ 2300 | "windows-targets", 2301 | ] 2302 | 2303 | [[package]] 2304 | name = "windows-targets" 2305 | version = "0.52.6" 2306 | source = "registry+https://github.com/rust-lang/crates.io-index" 2307 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2308 | dependencies = [ 2309 | "windows_aarch64_gnullvm", 2310 | "windows_aarch64_msvc", 2311 | "windows_i686_gnu", 2312 | "windows_i686_gnullvm", 2313 | "windows_i686_msvc", 2314 | "windows_x86_64_gnu", 2315 | "windows_x86_64_gnullvm", 2316 | "windows_x86_64_msvc", 2317 | ] 2318 | 2319 | [[package]] 2320 | name = "windows_aarch64_gnullvm" 2321 | version = "0.52.6" 2322 | source = "registry+https://github.com/rust-lang/crates.io-index" 2323 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2324 | 2325 | [[package]] 2326 | name = "windows_aarch64_msvc" 2327 | version = "0.52.6" 2328 | source = "registry+https://github.com/rust-lang/crates.io-index" 2329 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2330 | 2331 | [[package]] 2332 | name = "windows_i686_gnu" 2333 | version = "0.52.6" 2334 | source = "registry+https://github.com/rust-lang/crates.io-index" 2335 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2336 | 2337 | [[package]] 2338 | name = "windows_i686_gnullvm" 2339 | version = "0.52.6" 2340 | source = "registry+https://github.com/rust-lang/crates.io-index" 2341 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2342 | 2343 | [[package]] 2344 | name = "windows_i686_msvc" 2345 | version = "0.52.6" 2346 | source = "registry+https://github.com/rust-lang/crates.io-index" 2347 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2348 | 2349 | [[package]] 2350 | name = "windows_x86_64_gnu" 2351 | version = "0.52.6" 2352 | source = "registry+https://github.com/rust-lang/crates.io-index" 2353 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2354 | 2355 | [[package]] 2356 | name = "windows_x86_64_gnullvm" 2357 | version = "0.52.6" 2358 | source = "registry+https://github.com/rust-lang/crates.io-index" 2359 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2360 | 2361 | [[package]] 2362 | name = "windows_x86_64_msvc" 2363 | version = "0.52.6" 2364 | source = "registry+https://github.com/rust-lang/crates.io-index" 2365 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2366 | 2367 | [[package]] 2368 | name = "winnow" 2369 | version = "0.6.20" 2370 | source = "registry+https://github.com/rust-lang/crates.io-index" 2371 | checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" 2372 | dependencies = [ 2373 | "memchr", 2374 | ] 2375 | 2376 | [[package]] 2377 | name = "write16" 2378 | version = "1.0.0" 2379 | source = "registry+https://github.com/rust-lang/crates.io-index" 2380 | checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 2381 | 2382 | [[package]] 2383 | name = "writeable" 2384 | version = "0.5.5" 2385 | source = "registry+https://github.com/rust-lang/crates.io-index" 2386 | checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" 2387 | 2388 | [[package]] 2389 | name = "wyz" 2390 | version = "0.5.1" 2391 | source = "registry+https://github.com/rust-lang/crates.io-index" 2392 | checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 2393 | dependencies = [ 2394 | "tap", 2395 | ] 2396 | 2397 | [[package]] 2398 | name = "yansi-term" 2399 | version = "0.1.2" 2400 | source = "registry+https://github.com/rust-lang/crates.io-index" 2401 | checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1" 2402 | dependencies = [ 2403 | "winapi", 2404 | ] 2405 | 2406 | [[package]] 2407 | name = "yoke" 2408 | version = "0.7.4" 2409 | source = "registry+https://github.com/rust-lang/crates.io-index" 2410 | checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" 2411 | dependencies = [ 2412 | "serde", 2413 | "stable_deref_trait", 2414 | "yoke-derive", 2415 | "zerofrom", 2416 | ] 2417 | 2418 | [[package]] 2419 | name = "yoke-derive" 2420 | version = "0.7.4" 2421 | source = "registry+https://github.com/rust-lang/crates.io-index" 2422 | checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" 2423 | dependencies = [ 2424 | "proc-macro2", 2425 | "quote", 2426 | "syn", 2427 | "synstructure", 2428 | ] 2429 | 2430 | [[package]] 2431 | name = "zerocopy" 2432 | version = "0.7.35" 2433 | source = "registry+https://github.com/rust-lang/crates.io-index" 2434 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 2435 | dependencies = [ 2436 | "byteorder", 2437 | "zerocopy-derive", 2438 | ] 2439 | 2440 | [[package]] 2441 | name = "zerocopy-derive" 2442 | version = "0.7.35" 2443 | source = "registry+https://github.com/rust-lang/crates.io-index" 2444 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 2445 | dependencies = [ 2446 | "proc-macro2", 2447 | "quote", 2448 | "syn", 2449 | ] 2450 | 2451 | [[package]] 2452 | name = "zerofrom" 2453 | version = "0.1.4" 2454 | source = "registry+https://github.com/rust-lang/crates.io-index" 2455 | checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" 2456 | dependencies = [ 2457 | "zerofrom-derive", 2458 | ] 2459 | 2460 | [[package]] 2461 | name = "zerofrom-derive" 2462 | version = "0.1.4" 2463 | source = "registry+https://github.com/rust-lang/crates.io-index" 2464 | checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" 2465 | dependencies = [ 2466 | "proc-macro2", 2467 | "quote", 2468 | "syn", 2469 | "synstructure", 2470 | ] 2471 | 2472 | [[package]] 2473 | name = "zerovec" 2474 | version = "0.10.4" 2475 | source = "registry+https://github.com/rust-lang/crates.io-index" 2476 | checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" 2477 | dependencies = [ 2478 | "yoke", 2479 | "zerofrom", 2480 | "zerovec-derive", 2481 | ] 2482 | 2483 | [[package]] 2484 | name = "zerovec-derive" 2485 | version = "0.10.3" 2486 | source = "registry+https://github.com/rust-lang/crates.io-index" 2487 | checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" 2488 | dependencies = [ 2489 | "proc-macro2", 2490 | "quote", 2491 | "syn", 2492 | ] 2493 | --------------------------------------------------------------------------------