├── .github └── workflows │ ├── autogen.yml │ └── ci.yml ├── .gitignore ├── .taplo.toml ├── Cargo.lock ├── Cargo.toml ├── README.md ├── data.toml ├── libraries ├── .gitkeep ├── apache_arrow_rust.md ├── apache_avro_rust.md ├── apache_datafusion.md ├── apache_hudi_rust.md ├── apache_iceberg_rust.md ├── apache_opendal.md ├── apache_orc_rust.md ├── apache_paimon_rust.md └── apache_parquet_rust.md ├── projects ├── .gitkeep ├── apache_datafusion_comet.md ├── apache_horaedb_(incubating).md ├── arroyo.md ├── blaze.md ├── daft.md ├── databend.md ├── fluvio.md ├── glaredb.md ├── greptimedb.md ├── influxdb.md ├── lancedb.md ├── paradedb.md ├── quickwit.md ├── risingwave.md ├── slatedb.md └── tikv.md ├── rust-toolchain.toml ├── rustfmt.toml ├── src ├── main.rs ├── markdown.rs ├── spec.rs └── utils.rs └── templates ├── README.tmpl ├── library.tmpl └── project.tmpl /.github/workflows/autogen.yml: -------------------------------------------------------------------------------- 1 | name: Auto Generate 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths: 8 | - 'templates/**' 9 | - 'data.toml' 10 | workflow_dispatch: 11 | schedule: 12 | - cron: "0 0 * * *" 13 | 14 | concurrency: 15 | group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} 16 | cancel-in-progress: true 17 | 18 | jobs: 19 | generate: 20 | runs-on: ubuntu-latest 21 | steps: 22 | - uses: actions/checkout@v4 23 | - name: Generate 24 | run: cargo run 25 | env: 26 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 27 | - name: Commit 28 | uses: EndBug/add-and-commit@v9 29 | with: 30 | author_name: "RBIR Bot" 31 | author_email: "bot@rbir.dev" 32 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | 11 | concurrency: 12 | group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} 13 | cancel-in-progress: true 14 | 15 | jobs: 16 | check: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v4 20 | 21 | - name: Format 22 | run: cargo fmt --all -- --check 23 | 24 | - name: Clippy 25 | run: cargo clippy --all-targets -- -D warnings 26 | 27 | unit: 28 | runs-on: ubuntu-latest 29 | steps: 30 | - uses: actions/checkout@v4 31 | - name: Unit 32 | run: cargo test --all-targets 33 | env: 34 | RUST_LOG: DEBUG 35 | RUST_BACKTRACE: full 36 | 37 | test: 38 | runs-on: ubuntu-latest 39 | steps: 40 | - uses: actions/checkout@v4 41 | - name: Test 42 | run: | 43 | cargo run 44 | git diff 45 | env: 46 | RUST_LOG: DEBUG 47 | RUST_BACKTRACE: full 48 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /.taplo.toml: -------------------------------------------------------------------------------- 1 | [formatting] 2 | reorder_arrays = true 3 | reorder_keys = true 4 | -------------------------------------------------------------------------------- /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.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" 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 = "android-tzdata" 31 | version = "0.1.1" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 34 | 35 | [[package]] 36 | name = "android_system_properties" 37 | version = "0.1.5" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 40 | dependencies = [ 41 | "libc", 42 | ] 43 | 44 | [[package]] 45 | name = "anyhow" 46 | version = "1.0.89" 47 | source = "registry+https://github.com/rust-lang/crates.io-index" 48 | checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" 49 | 50 | [[package]] 51 | name = "arc-swap" 52 | version = "1.7.1" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" 55 | 56 | [[package]] 57 | name = "async-trait" 58 | version = "0.1.82" 59 | source = "registry+https://github.com/rust-lang/crates.io-index" 60 | checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" 61 | dependencies = [ 62 | "proc-macro2", 63 | "quote", 64 | "syn", 65 | ] 66 | 67 | [[package]] 68 | name = "autocfg" 69 | version = "1.3.0" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 72 | 73 | [[package]] 74 | name = "backtrace" 75 | version = "0.3.74" 76 | source = "registry+https://github.com/rust-lang/crates.io-index" 77 | checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" 78 | dependencies = [ 79 | "addr2line", 80 | "cfg-if", 81 | "libc", 82 | "miniz_oxide", 83 | "object", 84 | "rustc-demangle", 85 | "windows-targets", 86 | ] 87 | 88 | [[package]] 89 | name = "base64" 90 | version = "0.21.7" 91 | source = "registry+https://github.com/rust-lang/crates.io-index" 92 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 93 | 94 | [[package]] 95 | name = "base64" 96 | version = "0.22.1" 97 | source = "registry+https://github.com/rust-lang/crates.io-index" 98 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 99 | 100 | [[package]] 101 | name = "bitflags" 102 | version = "2.6.0" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 105 | 106 | [[package]] 107 | name = "block-buffer" 108 | version = "0.10.4" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 111 | dependencies = [ 112 | "generic-array", 113 | ] 114 | 115 | [[package]] 116 | name = "bstr" 117 | version = "1.10.0" 118 | source = "registry+https://github.com/rust-lang/crates.io-index" 119 | checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" 120 | dependencies = [ 121 | "memchr", 122 | "serde", 123 | ] 124 | 125 | [[package]] 126 | name = "bumpalo" 127 | version = "3.16.0" 128 | source = "registry+https://github.com/rust-lang/crates.io-index" 129 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 130 | 131 | [[package]] 132 | name = "byteorder" 133 | version = "1.5.0" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 136 | 137 | [[package]] 138 | name = "bytes" 139 | version = "1.7.1" 140 | source = "registry+https://github.com/rust-lang/crates.io-index" 141 | checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" 142 | 143 | [[package]] 144 | name = "cc" 145 | version = "1.1.19" 146 | source = "registry+https://github.com/rust-lang/crates.io-index" 147 | checksum = "2d74707dde2ba56f86ae90effb3b43ddd369504387e718014de010cec7959800" 148 | dependencies = [ 149 | "shlex", 150 | ] 151 | 152 | [[package]] 153 | name = "cfg-if" 154 | version = "1.0.0" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 157 | 158 | [[package]] 159 | name = "chrono" 160 | version = "0.4.38" 161 | source = "registry+https://github.com/rust-lang/crates.io-index" 162 | checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" 163 | dependencies = [ 164 | "android-tzdata", 165 | "iana-time-zone", 166 | "num-traits", 167 | "serde", 168 | "windows-targets", 169 | ] 170 | 171 | [[package]] 172 | name = "chrono-tz" 173 | version = "0.9.0" 174 | source = "registry+https://github.com/rust-lang/crates.io-index" 175 | checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb" 176 | dependencies = [ 177 | "chrono", 178 | "chrono-tz-build", 179 | "phf", 180 | ] 181 | 182 | [[package]] 183 | name = "chrono-tz-build" 184 | version = "0.3.0" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1" 187 | dependencies = [ 188 | "parse-zoneinfo", 189 | "phf", 190 | "phf_codegen", 191 | ] 192 | 193 | [[package]] 194 | name = "core-foundation" 195 | version = "0.9.4" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 198 | dependencies = [ 199 | "core-foundation-sys", 200 | "libc", 201 | ] 202 | 203 | [[package]] 204 | name = "core-foundation-sys" 205 | version = "0.8.7" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 208 | 209 | [[package]] 210 | name = "cpufeatures" 211 | version = "0.2.14" 212 | source = "registry+https://github.com/rust-lang/crates.io-index" 213 | checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" 214 | dependencies = [ 215 | "libc", 216 | ] 217 | 218 | [[package]] 219 | name = "crossbeam-deque" 220 | version = "0.8.5" 221 | source = "registry+https://github.com/rust-lang/crates.io-index" 222 | checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 223 | dependencies = [ 224 | "crossbeam-epoch", 225 | "crossbeam-utils", 226 | ] 227 | 228 | [[package]] 229 | name = "crossbeam-epoch" 230 | version = "0.9.18" 231 | source = "registry+https://github.com/rust-lang/crates.io-index" 232 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 233 | dependencies = [ 234 | "crossbeam-utils", 235 | ] 236 | 237 | [[package]] 238 | name = "crossbeam-utils" 239 | version = "0.8.20" 240 | source = "registry+https://github.com/rust-lang/crates.io-index" 241 | checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 242 | 243 | [[package]] 244 | name = "crypto-common" 245 | version = "0.1.6" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 248 | dependencies = [ 249 | "generic-array", 250 | "typenum", 251 | ] 252 | 253 | [[package]] 254 | name = "deranged" 255 | version = "0.3.11" 256 | source = "registry+https://github.com/rust-lang/crates.io-index" 257 | checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 258 | dependencies = [ 259 | "powerfmt", 260 | ] 261 | 262 | [[package]] 263 | name = "deunicode" 264 | version = "1.6.0" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00" 267 | 268 | [[package]] 269 | name = "diff" 270 | version = "0.1.13" 271 | source = "registry+https://github.com/rust-lang/crates.io-index" 272 | checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" 273 | 274 | [[package]] 275 | name = "digest" 276 | version = "0.10.7" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 279 | dependencies = [ 280 | "block-buffer", 281 | "crypto-common", 282 | ] 283 | 284 | [[package]] 285 | name = "either" 286 | version = "1.13.0" 287 | source = "registry+https://github.com/rust-lang/crates.io-index" 288 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 289 | 290 | [[package]] 291 | name = "equivalent" 292 | version = "1.0.1" 293 | source = "registry+https://github.com/rust-lang/crates.io-index" 294 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 295 | 296 | [[package]] 297 | name = "fnv" 298 | version = "1.0.7" 299 | source = "registry+https://github.com/rust-lang/crates.io-index" 300 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 301 | 302 | [[package]] 303 | name = "form_urlencoded" 304 | version = "1.2.1" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 307 | dependencies = [ 308 | "percent-encoding", 309 | ] 310 | 311 | [[package]] 312 | name = "futures" 313 | version = "0.3.30" 314 | source = "registry+https://github.com/rust-lang/crates.io-index" 315 | checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" 316 | dependencies = [ 317 | "futures-channel", 318 | "futures-core", 319 | "futures-executor", 320 | "futures-io", 321 | "futures-sink", 322 | "futures-task", 323 | "futures-util", 324 | ] 325 | 326 | [[package]] 327 | name = "futures-channel" 328 | version = "0.3.30" 329 | source = "registry+https://github.com/rust-lang/crates.io-index" 330 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 331 | dependencies = [ 332 | "futures-core", 333 | "futures-sink", 334 | ] 335 | 336 | [[package]] 337 | name = "futures-core" 338 | version = "0.3.30" 339 | source = "registry+https://github.com/rust-lang/crates.io-index" 340 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 341 | 342 | [[package]] 343 | name = "futures-executor" 344 | version = "0.3.30" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" 347 | dependencies = [ 348 | "futures-core", 349 | "futures-task", 350 | "futures-util", 351 | ] 352 | 353 | [[package]] 354 | name = "futures-io" 355 | version = "0.3.30" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 358 | 359 | [[package]] 360 | name = "futures-macro" 361 | version = "0.3.30" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" 364 | dependencies = [ 365 | "proc-macro2", 366 | "quote", 367 | "syn", 368 | ] 369 | 370 | [[package]] 371 | name = "futures-sink" 372 | version = "0.3.30" 373 | source = "registry+https://github.com/rust-lang/crates.io-index" 374 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 375 | 376 | [[package]] 377 | name = "futures-task" 378 | version = "0.3.30" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 381 | 382 | [[package]] 383 | name = "futures-util" 384 | version = "0.3.30" 385 | source = "registry+https://github.com/rust-lang/crates.io-index" 386 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 387 | dependencies = [ 388 | "futures-channel", 389 | "futures-core", 390 | "futures-io", 391 | "futures-macro", 392 | "futures-sink", 393 | "futures-task", 394 | "memchr", 395 | "pin-project-lite", 396 | "pin-utils", 397 | "slab", 398 | ] 399 | 400 | [[package]] 401 | name = "generic-array" 402 | version = "0.14.7" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 405 | dependencies = [ 406 | "typenum", 407 | "version_check", 408 | ] 409 | 410 | [[package]] 411 | name = "getrandom" 412 | version = "0.2.15" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 415 | dependencies = [ 416 | "cfg-if", 417 | "js-sys", 418 | "libc", 419 | "wasi", 420 | "wasm-bindgen", 421 | ] 422 | 423 | [[package]] 424 | name = "gimli" 425 | version = "0.31.0" 426 | source = "registry+https://github.com/rust-lang/crates.io-index" 427 | checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" 428 | 429 | [[package]] 430 | name = "globset" 431 | version = "0.4.15" 432 | source = "registry+https://github.com/rust-lang/crates.io-index" 433 | checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" 434 | dependencies = [ 435 | "aho-corasick", 436 | "bstr", 437 | "log", 438 | "regex-automata", 439 | "regex-syntax", 440 | ] 441 | 442 | [[package]] 443 | name = "globwalk" 444 | version = "0.9.1" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" 447 | dependencies = [ 448 | "bitflags", 449 | "ignore", 450 | "walkdir", 451 | ] 452 | 453 | [[package]] 454 | name = "hashbrown" 455 | version = "0.14.5" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 458 | 459 | [[package]] 460 | name = "heck" 461 | version = "0.5.0" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 464 | 465 | [[package]] 466 | name = "hermit-abi" 467 | version = "0.3.9" 468 | source = "registry+https://github.com/rust-lang/crates.io-index" 469 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 470 | 471 | [[package]] 472 | name = "http" 473 | version = "1.1.0" 474 | source = "registry+https://github.com/rust-lang/crates.io-index" 475 | checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" 476 | dependencies = [ 477 | "bytes", 478 | "fnv", 479 | "itoa", 480 | ] 481 | 482 | [[package]] 483 | name = "http-body" 484 | version = "1.0.1" 485 | source = "registry+https://github.com/rust-lang/crates.io-index" 486 | checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 487 | dependencies = [ 488 | "bytes", 489 | "http", 490 | ] 491 | 492 | [[package]] 493 | name = "http-body-util" 494 | version = "0.1.2" 495 | source = "registry+https://github.com/rust-lang/crates.io-index" 496 | checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" 497 | dependencies = [ 498 | "bytes", 499 | "futures-util", 500 | "http", 501 | "http-body", 502 | "pin-project-lite", 503 | ] 504 | 505 | [[package]] 506 | name = "httparse" 507 | version = "1.9.4" 508 | source = "registry+https://github.com/rust-lang/crates.io-index" 509 | checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" 510 | 511 | [[package]] 512 | name = "humansize" 513 | version = "2.1.3" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" 516 | dependencies = [ 517 | "libm", 518 | ] 519 | 520 | [[package]] 521 | name = "hyper" 522 | version = "1.4.1" 523 | source = "registry+https://github.com/rust-lang/crates.io-index" 524 | checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" 525 | dependencies = [ 526 | "bytes", 527 | "futures-channel", 528 | "futures-util", 529 | "http", 530 | "http-body", 531 | "httparse", 532 | "itoa", 533 | "pin-project-lite", 534 | "smallvec", 535 | "tokio", 536 | "want", 537 | ] 538 | 539 | [[package]] 540 | name = "hyper-rustls" 541 | version = "0.26.0" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" 544 | dependencies = [ 545 | "futures-util", 546 | "http", 547 | "hyper", 548 | "hyper-util", 549 | "log", 550 | "rustls", 551 | "rustls-native-certs", 552 | "rustls-pki-types", 553 | "tokio", 554 | "tokio-rustls", 555 | "tower-service", 556 | ] 557 | 558 | [[package]] 559 | name = "hyper-timeout" 560 | version = "0.5.1" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" 563 | dependencies = [ 564 | "hyper", 565 | "hyper-util", 566 | "pin-project-lite", 567 | "tokio", 568 | "tower-service", 569 | ] 570 | 571 | [[package]] 572 | name = "hyper-util" 573 | version = "0.1.8" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" 576 | dependencies = [ 577 | "bytes", 578 | "futures-channel", 579 | "futures-util", 580 | "http", 581 | "http-body", 582 | "hyper", 583 | "pin-project-lite", 584 | "socket2", 585 | "tokio", 586 | "tower", 587 | "tower-service", 588 | "tracing", 589 | ] 590 | 591 | [[package]] 592 | name = "iana-time-zone" 593 | version = "0.1.60" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" 596 | dependencies = [ 597 | "android_system_properties", 598 | "core-foundation-sys", 599 | "iana-time-zone-haiku", 600 | "js-sys", 601 | "wasm-bindgen", 602 | "windows-core", 603 | ] 604 | 605 | [[package]] 606 | name = "iana-time-zone-haiku" 607 | version = "0.1.2" 608 | source = "registry+https://github.com/rust-lang/crates.io-index" 609 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 610 | dependencies = [ 611 | "cc", 612 | ] 613 | 614 | [[package]] 615 | name = "idna" 616 | version = "0.5.0" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 619 | dependencies = [ 620 | "unicode-bidi", 621 | "unicode-normalization", 622 | ] 623 | 624 | [[package]] 625 | name = "ignore" 626 | version = "0.4.23" 627 | source = "registry+https://github.com/rust-lang/crates.io-index" 628 | checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" 629 | dependencies = [ 630 | "crossbeam-deque", 631 | "globset", 632 | "log", 633 | "memchr", 634 | "regex-automata", 635 | "same-file", 636 | "walkdir", 637 | "winapi-util", 638 | ] 639 | 640 | [[package]] 641 | name = "indexmap" 642 | version = "2.5.0" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" 645 | dependencies = [ 646 | "equivalent", 647 | "hashbrown", 648 | ] 649 | 650 | [[package]] 651 | name = "iri-string" 652 | version = "0.7.4" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "3e0f755bd3806e06ad4f366f92639415d99a339a2c7ecf8c26ccea2097c11cb6" 655 | dependencies = [ 656 | "memchr", 657 | "serde", 658 | ] 659 | 660 | [[package]] 661 | name = "itoa" 662 | version = "1.0.11" 663 | source = "registry+https://github.com/rust-lang/crates.io-index" 664 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 665 | 666 | [[package]] 667 | name = "js-sys" 668 | version = "0.3.70" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" 671 | dependencies = [ 672 | "wasm-bindgen", 673 | ] 674 | 675 | [[package]] 676 | name = "jsonwebtoken" 677 | version = "9.3.0" 678 | source = "registry+https://github.com/rust-lang/crates.io-index" 679 | checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" 680 | dependencies = [ 681 | "base64 0.21.7", 682 | "js-sys", 683 | "pem", 684 | "ring", 685 | "serde", 686 | "serde_json", 687 | "simple_asn1", 688 | ] 689 | 690 | [[package]] 691 | name = "lazy_static" 692 | version = "1.5.0" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 695 | 696 | [[package]] 697 | name = "libc" 698 | version = "0.2.158" 699 | source = "registry+https://github.com/rust-lang/crates.io-index" 700 | checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" 701 | 702 | [[package]] 703 | name = "libm" 704 | version = "0.2.8" 705 | source = "registry+https://github.com/rust-lang/crates.io-index" 706 | checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" 707 | 708 | [[package]] 709 | name = "log" 710 | version = "0.4.22" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 713 | 714 | [[package]] 715 | name = "memchr" 716 | version = "2.7.4" 717 | source = "registry+https://github.com/rust-lang/crates.io-index" 718 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 719 | 720 | [[package]] 721 | name = "miniz_oxide" 722 | version = "0.8.0" 723 | source = "registry+https://github.com/rust-lang/crates.io-index" 724 | checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 725 | dependencies = [ 726 | "adler2", 727 | ] 728 | 729 | [[package]] 730 | name = "mio" 731 | version = "1.0.2" 732 | source = "registry+https://github.com/rust-lang/crates.io-index" 733 | checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" 734 | dependencies = [ 735 | "hermit-abi", 736 | "libc", 737 | "wasi", 738 | "windows-sys 0.52.0", 739 | ] 740 | 741 | [[package]] 742 | name = "num-bigint" 743 | version = "0.4.6" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 746 | dependencies = [ 747 | "num-integer", 748 | "num-traits", 749 | ] 750 | 751 | [[package]] 752 | name = "num-conv" 753 | version = "0.1.0" 754 | source = "registry+https://github.com/rust-lang/crates.io-index" 755 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 756 | 757 | [[package]] 758 | name = "num-integer" 759 | version = "0.1.46" 760 | source = "registry+https://github.com/rust-lang/crates.io-index" 761 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 762 | dependencies = [ 763 | "num-traits", 764 | ] 765 | 766 | [[package]] 767 | name = "num-traits" 768 | version = "0.2.19" 769 | source = "registry+https://github.com/rust-lang/crates.io-index" 770 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 771 | dependencies = [ 772 | "autocfg", 773 | ] 774 | 775 | [[package]] 776 | name = "object" 777 | version = "0.36.4" 778 | source = "registry+https://github.com/rust-lang/crates.io-index" 779 | checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" 780 | dependencies = [ 781 | "memchr", 782 | ] 783 | 784 | [[package]] 785 | name = "octocrab" 786 | version = "0.39.0" 787 | source = "registry+https://github.com/rust-lang/crates.io-index" 788 | checksum = "9305e4c99543ecd0f42bd659c9e9d6ca7115fe5e37d5c85a7277b1db0d4c4101" 789 | dependencies = [ 790 | "arc-swap", 791 | "async-trait", 792 | "base64 0.22.1", 793 | "bytes", 794 | "cfg-if", 795 | "chrono", 796 | "either", 797 | "futures", 798 | "futures-util", 799 | "http", 800 | "http-body", 801 | "http-body-util", 802 | "hyper", 803 | "hyper-rustls", 804 | "hyper-timeout", 805 | "hyper-util", 806 | "jsonwebtoken", 807 | "once_cell", 808 | "percent-encoding", 809 | "pin-project", 810 | "secrecy", 811 | "serde", 812 | "serde_json", 813 | "serde_path_to_error", 814 | "serde_urlencoded", 815 | "snafu", 816 | "tokio", 817 | "tower", 818 | "tower-http", 819 | "tracing", 820 | "url", 821 | ] 822 | 823 | [[package]] 824 | name = "once_cell" 825 | version = "1.20.0" 826 | source = "registry+https://github.com/rust-lang/crates.io-index" 827 | checksum = "33ea5043e58958ee56f3e15a90aee535795cd7dfd319846288d93c5b57d85cbe" 828 | 829 | [[package]] 830 | name = "openssl-probe" 831 | version = "0.1.5" 832 | source = "registry+https://github.com/rust-lang/crates.io-index" 833 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 834 | 835 | [[package]] 836 | name = "parse-zoneinfo" 837 | version = "0.3.1" 838 | source = "registry+https://github.com/rust-lang/crates.io-index" 839 | checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" 840 | dependencies = [ 841 | "regex", 842 | ] 843 | 844 | [[package]] 845 | name = "pem" 846 | version = "3.0.4" 847 | source = "registry+https://github.com/rust-lang/crates.io-index" 848 | checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" 849 | dependencies = [ 850 | "base64 0.22.1", 851 | "serde", 852 | ] 853 | 854 | [[package]] 855 | name = "percent-encoding" 856 | version = "2.3.1" 857 | source = "registry+https://github.com/rust-lang/crates.io-index" 858 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 859 | 860 | [[package]] 861 | name = "pest" 862 | version = "2.7.12" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | checksum = "9c73c26c01b8c87956cea613c907c9d6ecffd8d18a2a5908e5de0adfaa185cea" 865 | dependencies = [ 866 | "memchr", 867 | "thiserror", 868 | "ucd-trie", 869 | ] 870 | 871 | [[package]] 872 | name = "pest_derive" 873 | version = "2.7.12" 874 | source = "registry+https://github.com/rust-lang/crates.io-index" 875 | checksum = "664d22978e2815783adbdd2c588b455b1bd625299ce36b2a99881ac9627e6d8d" 876 | dependencies = [ 877 | "pest", 878 | "pest_generator", 879 | ] 880 | 881 | [[package]] 882 | name = "pest_generator" 883 | version = "2.7.12" 884 | source = "registry+https://github.com/rust-lang/crates.io-index" 885 | checksum = "a2d5487022d5d33f4c30d91c22afa240ce2a644e87fe08caad974d4eab6badbe" 886 | dependencies = [ 887 | "pest", 888 | "pest_meta", 889 | "proc-macro2", 890 | "quote", 891 | "syn", 892 | ] 893 | 894 | [[package]] 895 | name = "pest_meta" 896 | version = "2.7.12" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "0091754bbd0ea592c4deb3a122ce8ecbb0753b738aa82bc055fcc2eccc8d8174" 899 | dependencies = [ 900 | "once_cell", 901 | "pest", 902 | "sha2", 903 | ] 904 | 905 | [[package]] 906 | name = "phf" 907 | version = "0.11.2" 908 | source = "registry+https://github.com/rust-lang/crates.io-index" 909 | checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" 910 | dependencies = [ 911 | "phf_shared", 912 | ] 913 | 914 | [[package]] 915 | name = "phf_codegen" 916 | version = "0.11.2" 917 | source = "registry+https://github.com/rust-lang/crates.io-index" 918 | checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" 919 | dependencies = [ 920 | "phf_generator", 921 | "phf_shared", 922 | ] 923 | 924 | [[package]] 925 | name = "phf_generator" 926 | version = "0.11.2" 927 | source = "registry+https://github.com/rust-lang/crates.io-index" 928 | checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" 929 | dependencies = [ 930 | "phf_shared", 931 | "rand", 932 | ] 933 | 934 | [[package]] 935 | name = "phf_shared" 936 | version = "0.11.2" 937 | source = "registry+https://github.com/rust-lang/crates.io-index" 938 | checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" 939 | dependencies = [ 940 | "siphasher", 941 | ] 942 | 943 | [[package]] 944 | name = "pin-project" 945 | version = "1.1.5" 946 | source = "registry+https://github.com/rust-lang/crates.io-index" 947 | checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" 948 | dependencies = [ 949 | "pin-project-internal", 950 | ] 951 | 952 | [[package]] 953 | name = "pin-project-internal" 954 | version = "1.1.5" 955 | source = "registry+https://github.com/rust-lang/crates.io-index" 956 | checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" 957 | dependencies = [ 958 | "proc-macro2", 959 | "quote", 960 | "syn", 961 | ] 962 | 963 | [[package]] 964 | name = "pin-project-lite" 965 | version = "0.2.14" 966 | source = "registry+https://github.com/rust-lang/crates.io-index" 967 | checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 968 | 969 | [[package]] 970 | name = "pin-utils" 971 | version = "0.1.0" 972 | source = "registry+https://github.com/rust-lang/crates.io-index" 973 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 974 | 975 | [[package]] 976 | name = "powerfmt" 977 | version = "0.2.0" 978 | source = "registry+https://github.com/rust-lang/crates.io-index" 979 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 980 | 981 | [[package]] 982 | name = "ppv-lite86" 983 | version = "0.2.20" 984 | source = "registry+https://github.com/rust-lang/crates.io-index" 985 | checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 986 | dependencies = [ 987 | "zerocopy", 988 | ] 989 | 990 | [[package]] 991 | name = "pretty_assertions" 992 | version = "1.4.1" 993 | source = "registry+https://github.com/rust-lang/crates.io-index" 994 | checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" 995 | dependencies = [ 996 | "diff", 997 | "yansi", 998 | ] 999 | 1000 | [[package]] 1001 | name = "proc-macro2" 1002 | version = "1.0.86" 1003 | source = "registry+https://github.com/rust-lang/crates.io-index" 1004 | checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 1005 | dependencies = [ 1006 | "unicode-ident", 1007 | ] 1008 | 1009 | [[package]] 1010 | name = "quote" 1011 | version = "1.0.37" 1012 | source = "registry+https://github.com/rust-lang/crates.io-index" 1013 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 1014 | dependencies = [ 1015 | "proc-macro2", 1016 | ] 1017 | 1018 | [[package]] 1019 | name = "rand" 1020 | version = "0.8.5" 1021 | source = "registry+https://github.com/rust-lang/crates.io-index" 1022 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1023 | dependencies = [ 1024 | "libc", 1025 | "rand_chacha", 1026 | "rand_core", 1027 | ] 1028 | 1029 | [[package]] 1030 | name = "rand_chacha" 1031 | version = "0.3.1" 1032 | source = "registry+https://github.com/rust-lang/crates.io-index" 1033 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1034 | dependencies = [ 1035 | "ppv-lite86", 1036 | "rand_core", 1037 | ] 1038 | 1039 | [[package]] 1040 | name = "rand_core" 1041 | version = "0.6.4" 1042 | source = "registry+https://github.com/rust-lang/crates.io-index" 1043 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1044 | dependencies = [ 1045 | "getrandom", 1046 | ] 1047 | 1048 | [[package]] 1049 | name = "rbir" 1050 | version = "0.0.0" 1051 | dependencies = [ 1052 | "anyhow", 1053 | "futures", 1054 | "octocrab", 1055 | "pretty_assertions", 1056 | "serde", 1057 | "tera", 1058 | "tokio", 1059 | "toml", 1060 | ] 1061 | 1062 | [[package]] 1063 | name = "regex" 1064 | version = "1.10.6" 1065 | source = "registry+https://github.com/rust-lang/crates.io-index" 1066 | checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" 1067 | dependencies = [ 1068 | "aho-corasick", 1069 | "memchr", 1070 | "regex-automata", 1071 | "regex-syntax", 1072 | ] 1073 | 1074 | [[package]] 1075 | name = "regex-automata" 1076 | version = "0.4.7" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" 1079 | dependencies = [ 1080 | "aho-corasick", 1081 | "memchr", 1082 | "regex-syntax", 1083 | ] 1084 | 1085 | [[package]] 1086 | name = "regex-syntax" 1087 | version = "0.8.4" 1088 | source = "registry+https://github.com/rust-lang/crates.io-index" 1089 | checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" 1090 | 1091 | [[package]] 1092 | name = "ring" 1093 | version = "0.17.8" 1094 | source = "registry+https://github.com/rust-lang/crates.io-index" 1095 | checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" 1096 | dependencies = [ 1097 | "cc", 1098 | "cfg-if", 1099 | "getrandom", 1100 | "libc", 1101 | "spin", 1102 | "untrusted", 1103 | "windows-sys 0.52.0", 1104 | ] 1105 | 1106 | [[package]] 1107 | name = "rustc-demangle" 1108 | version = "0.1.24" 1109 | source = "registry+https://github.com/rust-lang/crates.io-index" 1110 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 1111 | 1112 | [[package]] 1113 | name = "rustls" 1114 | version = "0.22.4" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" 1117 | dependencies = [ 1118 | "log", 1119 | "ring", 1120 | "rustls-pki-types", 1121 | "rustls-webpki", 1122 | "subtle", 1123 | "zeroize", 1124 | ] 1125 | 1126 | [[package]] 1127 | name = "rustls-native-certs" 1128 | version = "0.7.3" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" 1131 | dependencies = [ 1132 | "openssl-probe", 1133 | "rustls-pemfile", 1134 | "rustls-pki-types", 1135 | "schannel", 1136 | "security-framework", 1137 | ] 1138 | 1139 | [[package]] 1140 | name = "rustls-pemfile" 1141 | version = "2.1.3" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" 1144 | dependencies = [ 1145 | "base64 0.22.1", 1146 | "rustls-pki-types", 1147 | ] 1148 | 1149 | [[package]] 1150 | name = "rustls-pki-types" 1151 | version = "1.8.0" 1152 | source = "registry+https://github.com/rust-lang/crates.io-index" 1153 | checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" 1154 | 1155 | [[package]] 1156 | name = "rustls-webpki" 1157 | version = "0.102.8" 1158 | source = "registry+https://github.com/rust-lang/crates.io-index" 1159 | checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" 1160 | dependencies = [ 1161 | "ring", 1162 | "rustls-pki-types", 1163 | "untrusted", 1164 | ] 1165 | 1166 | [[package]] 1167 | name = "ryu" 1168 | version = "1.0.18" 1169 | source = "registry+https://github.com/rust-lang/crates.io-index" 1170 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1171 | 1172 | [[package]] 1173 | name = "same-file" 1174 | version = "1.0.6" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1177 | dependencies = [ 1178 | "winapi-util", 1179 | ] 1180 | 1181 | [[package]] 1182 | name = "schannel" 1183 | version = "0.1.24" 1184 | source = "registry+https://github.com/rust-lang/crates.io-index" 1185 | checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" 1186 | dependencies = [ 1187 | "windows-sys 0.59.0", 1188 | ] 1189 | 1190 | [[package]] 1191 | name = "secrecy" 1192 | version = "0.8.0" 1193 | source = "registry+https://github.com/rust-lang/crates.io-index" 1194 | checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" 1195 | dependencies = [ 1196 | "zeroize", 1197 | ] 1198 | 1199 | [[package]] 1200 | name = "security-framework" 1201 | version = "2.11.1" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 1204 | dependencies = [ 1205 | "bitflags", 1206 | "core-foundation", 1207 | "core-foundation-sys", 1208 | "libc", 1209 | "security-framework-sys", 1210 | ] 1211 | 1212 | [[package]] 1213 | name = "security-framework-sys" 1214 | version = "2.11.1" 1215 | source = "registry+https://github.com/rust-lang/crates.io-index" 1216 | checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" 1217 | dependencies = [ 1218 | "core-foundation-sys", 1219 | "libc", 1220 | ] 1221 | 1222 | [[package]] 1223 | name = "serde" 1224 | version = "1.0.210" 1225 | source = "registry+https://github.com/rust-lang/crates.io-index" 1226 | checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" 1227 | dependencies = [ 1228 | "serde_derive", 1229 | ] 1230 | 1231 | [[package]] 1232 | name = "serde_derive" 1233 | version = "1.0.210" 1234 | source = "registry+https://github.com/rust-lang/crates.io-index" 1235 | checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" 1236 | dependencies = [ 1237 | "proc-macro2", 1238 | "quote", 1239 | "syn", 1240 | ] 1241 | 1242 | [[package]] 1243 | name = "serde_json" 1244 | version = "1.0.128" 1245 | source = "registry+https://github.com/rust-lang/crates.io-index" 1246 | checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" 1247 | dependencies = [ 1248 | "itoa", 1249 | "memchr", 1250 | "ryu", 1251 | "serde", 1252 | ] 1253 | 1254 | [[package]] 1255 | name = "serde_path_to_error" 1256 | version = "0.1.16" 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" 1258 | checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" 1259 | dependencies = [ 1260 | "itoa", 1261 | "serde", 1262 | ] 1263 | 1264 | [[package]] 1265 | name = "serde_spanned" 1266 | version = "0.6.7" 1267 | source = "registry+https://github.com/rust-lang/crates.io-index" 1268 | checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" 1269 | dependencies = [ 1270 | "serde", 1271 | ] 1272 | 1273 | [[package]] 1274 | name = "serde_urlencoded" 1275 | version = "0.7.1" 1276 | source = "registry+https://github.com/rust-lang/crates.io-index" 1277 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1278 | dependencies = [ 1279 | "form_urlencoded", 1280 | "itoa", 1281 | "ryu", 1282 | "serde", 1283 | ] 1284 | 1285 | [[package]] 1286 | name = "sha2" 1287 | version = "0.10.8" 1288 | source = "registry+https://github.com/rust-lang/crates.io-index" 1289 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 1290 | dependencies = [ 1291 | "cfg-if", 1292 | "cpufeatures", 1293 | "digest", 1294 | ] 1295 | 1296 | [[package]] 1297 | name = "shlex" 1298 | version = "1.3.0" 1299 | source = "registry+https://github.com/rust-lang/crates.io-index" 1300 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1301 | 1302 | [[package]] 1303 | name = "simple_asn1" 1304 | version = "0.6.2" 1305 | source = "registry+https://github.com/rust-lang/crates.io-index" 1306 | checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" 1307 | dependencies = [ 1308 | "num-bigint", 1309 | "num-traits", 1310 | "thiserror", 1311 | "time", 1312 | ] 1313 | 1314 | [[package]] 1315 | name = "siphasher" 1316 | version = "0.3.11" 1317 | source = "registry+https://github.com/rust-lang/crates.io-index" 1318 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 1319 | 1320 | [[package]] 1321 | name = "slab" 1322 | version = "0.4.9" 1323 | source = "registry+https://github.com/rust-lang/crates.io-index" 1324 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1325 | dependencies = [ 1326 | "autocfg", 1327 | ] 1328 | 1329 | [[package]] 1330 | name = "slug" 1331 | version = "0.1.6" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" 1334 | dependencies = [ 1335 | "deunicode", 1336 | "wasm-bindgen", 1337 | ] 1338 | 1339 | [[package]] 1340 | name = "smallvec" 1341 | version = "1.13.2" 1342 | source = "registry+https://github.com/rust-lang/crates.io-index" 1343 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1344 | 1345 | [[package]] 1346 | name = "snafu" 1347 | version = "0.8.4" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "2b835cb902660db3415a672d862905e791e54d306c6e8189168c7f3d9ae1c79d" 1350 | dependencies = [ 1351 | "snafu-derive", 1352 | ] 1353 | 1354 | [[package]] 1355 | name = "snafu-derive" 1356 | version = "0.8.4" 1357 | source = "registry+https://github.com/rust-lang/crates.io-index" 1358 | checksum = "38d1e02fca405f6280643174a50c942219f0bbf4dbf7d480f1dd864d6f211ae5" 1359 | dependencies = [ 1360 | "heck", 1361 | "proc-macro2", 1362 | "quote", 1363 | "syn", 1364 | ] 1365 | 1366 | [[package]] 1367 | name = "socket2" 1368 | version = "0.5.7" 1369 | source = "registry+https://github.com/rust-lang/crates.io-index" 1370 | checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 1371 | dependencies = [ 1372 | "libc", 1373 | "windows-sys 0.52.0", 1374 | ] 1375 | 1376 | [[package]] 1377 | name = "spin" 1378 | version = "0.9.8" 1379 | source = "registry+https://github.com/rust-lang/crates.io-index" 1380 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1381 | 1382 | [[package]] 1383 | name = "subtle" 1384 | version = "2.6.1" 1385 | source = "registry+https://github.com/rust-lang/crates.io-index" 1386 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1387 | 1388 | [[package]] 1389 | name = "syn" 1390 | version = "2.0.77" 1391 | source = "registry+https://github.com/rust-lang/crates.io-index" 1392 | checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" 1393 | dependencies = [ 1394 | "proc-macro2", 1395 | "quote", 1396 | "unicode-ident", 1397 | ] 1398 | 1399 | [[package]] 1400 | name = "tera" 1401 | version = "1.20.0" 1402 | source = "registry+https://github.com/rust-lang/crates.io-index" 1403 | checksum = "ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee" 1404 | dependencies = [ 1405 | "chrono", 1406 | "chrono-tz", 1407 | "globwalk", 1408 | "humansize", 1409 | "lazy_static", 1410 | "percent-encoding", 1411 | "pest", 1412 | "pest_derive", 1413 | "rand", 1414 | "regex", 1415 | "serde", 1416 | "serde_json", 1417 | "slug", 1418 | "unic-segment", 1419 | ] 1420 | 1421 | [[package]] 1422 | name = "thiserror" 1423 | version = "1.0.63" 1424 | source = "registry+https://github.com/rust-lang/crates.io-index" 1425 | checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" 1426 | dependencies = [ 1427 | "thiserror-impl", 1428 | ] 1429 | 1430 | [[package]] 1431 | name = "thiserror-impl" 1432 | version = "1.0.63" 1433 | source = "registry+https://github.com/rust-lang/crates.io-index" 1434 | checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" 1435 | dependencies = [ 1436 | "proc-macro2", 1437 | "quote", 1438 | "syn", 1439 | ] 1440 | 1441 | [[package]] 1442 | name = "time" 1443 | version = "0.3.36" 1444 | source = "registry+https://github.com/rust-lang/crates.io-index" 1445 | checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 1446 | dependencies = [ 1447 | "deranged", 1448 | "itoa", 1449 | "num-conv", 1450 | "powerfmt", 1451 | "serde", 1452 | "time-core", 1453 | "time-macros", 1454 | ] 1455 | 1456 | [[package]] 1457 | name = "time-core" 1458 | version = "0.1.2" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 1461 | 1462 | [[package]] 1463 | name = "time-macros" 1464 | version = "0.2.18" 1465 | source = "registry+https://github.com/rust-lang/crates.io-index" 1466 | checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" 1467 | dependencies = [ 1468 | "num-conv", 1469 | "time-core", 1470 | ] 1471 | 1472 | [[package]] 1473 | name = "tinyvec" 1474 | version = "1.8.0" 1475 | source = "registry+https://github.com/rust-lang/crates.io-index" 1476 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 1477 | dependencies = [ 1478 | "tinyvec_macros", 1479 | ] 1480 | 1481 | [[package]] 1482 | name = "tinyvec_macros" 1483 | version = "0.1.1" 1484 | source = "registry+https://github.com/rust-lang/crates.io-index" 1485 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1486 | 1487 | [[package]] 1488 | name = "tokio" 1489 | version = "1.40.0" 1490 | source = "registry+https://github.com/rust-lang/crates.io-index" 1491 | checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" 1492 | dependencies = [ 1493 | "backtrace", 1494 | "libc", 1495 | "mio", 1496 | "pin-project-lite", 1497 | "socket2", 1498 | "tokio-macros", 1499 | "windows-sys 0.52.0", 1500 | ] 1501 | 1502 | [[package]] 1503 | name = "tokio-macros" 1504 | version = "2.4.0" 1505 | source = "registry+https://github.com/rust-lang/crates.io-index" 1506 | checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" 1507 | dependencies = [ 1508 | "proc-macro2", 1509 | "quote", 1510 | "syn", 1511 | ] 1512 | 1513 | [[package]] 1514 | name = "tokio-rustls" 1515 | version = "0.25.0" 1516 | source = "registry+https://github.com/rust-lang/crates.io-index" 1517 | checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" 1518 | dependencies = [ 1519 | "rustls", 1520 | "rustls-pki-types", 1521 | "tokio", 1522 | ] 1523 | 1524 | [[package]] 1525 | name = "tokio-util" 1526 | version = "0.7.12" 1527 | source = "registry+https://github.com/rust-lang/crates.io-index" 1528 | checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" 1529 | dependencies = [ 1530 | "bytes", 1531 | "futures-core", 1532 | "futures-sink", 1533 | "pin-project-lite", 1534 | "tokio", 1535 | ] 1536 | 1537 | [[package]] 1538 | name = "toml" 1539 | version = "0.8.19" 1540 | source = "registry+https://github.com/rust-lang/crates.io-index" 1541 | checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" 1542 | dependencies = [ 1543 | "serde", 1544 | "serde_spanned", 1545 | "toml_datetime", 1546 | "toml_edit", 1547 | ] 1548 | 1549 | [[package]] 1550 | name = "toml_datetime" 1551 | version = "0.6.8" 1552 | source = "registry+https://github.com/rust-lang/crates.io-index" 1553 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 1554 | dependencies = [ 1555 | "serde", 1556 | ] 1557 | 1558 | [[package]] 1559 | name = "toml_edit" 1560 | version = "0.22.20" 1561 | source = "registry+https://github.com/rust-lang/crates.io-index" 1562 | checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" 1563 | dependencies = [ 1564 | "indexmap", 1565 | "serde", 1566 | "serde_spanned", 1567 | "toml_datetime", 1568 | "winnow", 1569 | ] 1570 | 1571 | [[package]] 1572 | name = "tower" 1573 | version = "0.4.13" 1574 | source = "registry+https://github.com/rust-lang/crates.io-index" 1575 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 1576 | dependencies = [ 1577 | "futures-core", 1578 | "futures-util", 1579 | "pin-project", 1580 | "pin-project-lite", 1581 | "tokio", 1582 | "tokio-util", 1583 | "tower-layer", 1584 | "tower-service", 1585 | "tracing", 1586 | ] 1587 | 1588 | [[package]] 1589 | name = "tower-http" 1590 | version = "0.5.2" 1591 | source = "registry+https://github.com/rust-lang/crates.io-index" 1592 | checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" 1593 | dependencies = [ 1594 | "bitflags", 1595 | "bytes", 1596 | "futures-util", 1597 | "http", 1598 | "http-body", 1599 | "http-body-util", 1600 | "iri-string", 1601 | "pin-project-lite", 1602 | "tower", 1603 | "tower-layer", 1604 | "tower-service", 1605 | "tracing", 1606 | ] 1607 | 1608 | [[package]] 1609 | name = "tower-layer" 1610 | version = "0.3.3" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 1613 | 1614 | [[package]] 1615 | name = "tower-service" 1616 | version = "0.3.3" 1617 | source = "registry+https://github.com/rust-lang/crates.io-index" 1618 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 1619 | 1620 | [[package]] 1621 | name = "tracing" 1622 | version = "0.1.40" 1623 | source = "registry+https://github.com/rust-lang/crates.io-index" 1624 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 1625 | dependencies = [ 1626 | "log", 1627 | "pin-project-lite", 1628 | "tracing-attributes", 1629 | "tracing-core", 1630 | ] 1631 | 1632 | [[package]] 1633 | name = "tracing-attributes" 1634 | version = "0.1.27" 1635 | source = "registry+https://github.com/rust-lang/crates.io-index" 1636 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 1637 | dependencies = [ 1638 | "proc-macro2", 1639 | "quote", 1640 | "syn", 1641 | ] 1642 | 1643 | [[package]] 1644 | name = "tracing-core" 1645 | version = "0.1.32" 1646 | source = "registry+https://github.com/rust-lang/crates.io-index" 1647 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 1648 | dependencies = [ 1649 | "once_cell", 1650 | ] 1651 | 1652 | [[package]] 1653 | name = "try-lock" 1654 | version = "0.2.5" 1655 | source = "registry+https://github.com/rust-lang/crates.io-index" 1656 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 1657 | 1658 | [[package]] 1659 | name = "typenum" 1660 | version = "1.17.0" 1661 | source = "registry+https://github.com/rust-lang/crates.io-index" 1662 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 1663 | 1664 | [[package]] 1665 | name = "ucd-trie" 1666 | version = "0.1.6" 1667 | source = "registry+https://github.com/rust-lang/crates.io-index" 1668 | checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" 1669 | 1670 | [[package]] 1671 | name = "unic-char-property" 1672 | version = "0.9.0" 1673 | source = "registry+https://github.com/rust-lang/crates.io-index" 1674 | checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" 1675 | dependencies = [ 1676 | "unic-char-range", 1677 | ] 1678 | 1679 | [[package]] 1680 | name = "unic-char-range" 1681 | version = "0.9.0" 1682 | source = "registry+https://github.com/rust-lang/crates.io-index" 1683 | checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" 1684 | 1685 | [[package]] 1686 | name = "unic-common" 1687 | version = "0.9.0" 1688 | source = "registry+https://github.com/rust-lang/crates.io-index" 1689 | checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" 1690 | 1691 | [[package]] 1692 | name = "unic-segment" 1693 | version = "0.9.0" 1694 | source = "registry+https://github.com/rust-lang/crates.io-index" 1695 | checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" 1696 | dependencies = [ 1697 | "unic-ucd-segment", 1698 | ] 1699 | 1700 | [[package]] 1701 | name = "unic-ucd-segment" 1702 | version = "0.9.0" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" 1705 | dependencies = [ 1706 | "unic-char-property", 1707 | "unic-char-range", 1708 | "unic-ucd-version", 1709 | ] 1710 | 1711 | [[package]] 1712 | name = "unic-ucd-version" 1713 | version = "0.9.0" 1714 | source = "registry+https://github.com/rust-lang/crates.io-index" 1715 | checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" 1716 | dependencies = [ 1717 | "unic-common", 1718 | ] 1719 | 1720 | [[package]] 1721 | name = "unicode-bidi" 1722 | version = "0.3.15" 1723 | source = "registry+https://github.com/rust-lang/crates.io-index" 1724 | checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" 1725 | 1726 | [[package]] 1727 | name = "unicode-ident" 1728 | version = "1.0.13" 1729 | source = "registry+https://github.com/rust-lang/crates.io-index" 1730 | checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 1731 | 1732 | [[package]] 1733 | name = "unicode-normalization" 1734 | version = "0.1.23" 1735 | source = "registry+https://github.com/rust-lang/crates.io-index" 1736 | checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" 1737 | dependencies = [ 1738 | "tinyvec", 1739 | ] 1740 | 1741 | [[package]] 1742 | name = "untrusted" 1743 | version = "0.9.0" 1744 | source = "registry+https://github.com/rust-lang/crates.io-index" 1745 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 1746 | 1747 | [[package]] 1748 | name = "url" 1749 | version = "2.5.2" 1750 | source = "registry+https://github.com/rust-lang/crates.io-index" 1751 | checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" 1752 | dependencies = [ 1753 | "form_urlencoded", 1754 | "idna", 1755 | "percent-encoding", 1756 | "serde", 1757 | ] 1758 | 1759 | [[package]] 1760 | name = "version_check" 1761 | version = "0.9.5" 1762 | source = "registry+https://github.com/rust-lang/crates.io-index" 1763 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1764 | 1765 | [[package]] 1766 | name = "walkdir" 1767 | version = "2.5.0" 1768 | source = "registry+https://github.com/rust-lang/crates.io-index" 1769 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 1770 | dependencies = [ 1771 | "same-file", 1772 | "winapi-util", 1773 | ] 1774 | 1775 | [[package]] 1776 | name = "want" 1777 | version = "0.3.1" 1778 | source = "registry+https://github.com/rust-lang/crates.io-index" 1779 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1780 | dependencies = [ 1781 | "try-lock", 1782 | ] 1783 | 1784 | [[package]] 1785 | name = "wasi" 1786 | version = "0.11.0+wasi-snapshot-preview1" 1787 | source = "registry+https://github.com/rust-lang/crates.io-index" 1788 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1789 | 1790 | [[package]] 1791 | name = "wasm-bindgen" 1792 | version = "0.2.93" 1793 | source = "registry+https://github.com/rust-lang/crates.io-index" 1794 | checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" 1795 | dependencies = [ 1796 | "cfg-if", 1797 | "once_cell", 1798 | "wasm-bindgen-macro", 1799 | ] 1800 | 1801 | [[package]] 1802 | name = "wasm-bindgen-backend" 1803 | version = "0.2.93" 1804 | source = "registry+https://github.com/rust-lang/crates.io-index" 1805 | checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" 1806 | dependencies = [ 1807 | "bumpalo", 1808 | "log", 1809 | "once_cell", 1810 | "proc-macro2", 1811 | "quote", 1812 | "syn", 1813 | "wasm-bindgen-shared", 1814 | ] 1815 | 1816 | [[package]] 1817 | name = "wasm-bindgen-macro" 1818 | version = "0.2.93" 1819 | source = "registry+https://github.com/rust-lang/crates.io-index" 1820 | checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" 1821 | dependencies = [ 1822 | "quote", 1823 | "wasm-bindgen-macro-support", 1824 | ] 1825 | 1826 | [[package]] 1827 | name = "wasm-bindgen-macro-support" 1828 | version = "0.2.93" 1829 | source = "registry+https://github.com/rust-lang/crates.io-index" 1830 | checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" 1831 | dependencies = [ 1832 | "proc-macro2", 1833 | "quote", 1834 | "syn", 1835 | "wasm-bindgen-backend", 1836 | "wasm-bindgen-shared", 1837 | ] 1838 | 1839 | [[package]] 1840 | name = "wasm-bindgen-shared" 1841 | version = "0.2.93" 1842 | source = "registry+https://github.com/rust-lang/crates.io-index" 1843 | checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" 1844 | 1845 | [[package]] 1846 | name = "winapi-util" 1847 | version = "0.1.9" 1848 | source = "registry+https://github.com/rust-lang/crates.io-index" 1849 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 1850 | dependencies = [ 1851 | "windows-sys 0.59.0", 1852 | ] 1853 | 1854 | [[package]] 1855 | name = "windows-core" 1856 | version = "0.52.0" 1857 | source = "registry+https://github.com/rust-lang/crates.io-index" 1858 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 1859 | dependencies = [ 1860 | "windows-targets", 1861 | ] 1862 | 1863 | [[package]] 1864 | name = "windows-sys" 1865 | version = "0.52.0" 1866 | source = "registry+https://github.com/rust-lang/crates.io-index" 1867 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1868 | dependencies = [ 1869 | "windows-targets", 1870 | ] 1871 | 1872 | [[package]] 1873 | name = "windows-sys" 1874 | version = "0.59.0" 1875 | source = "registry+https://github.com/rust-lang/crates.io-index" 1876 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1877 | dependencies = [ 1878 | "windows-targets", 1879 | ] 1880 | 1881 | [[package]] 1882 | name = "windows-targets" 1883 | version = "0.52.6" 1884 | source = "registry+https://github.com/rust-lang/crates.io-index" 1885 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1886 | dependencies = [ 1887 | "windows_aarch64_gnullvm", 1888 | "windows_aarch64_msvc", 1889 | "windows_i686_gnu", 1890 | "windows_i686_gnullvm", 1891 | "windows_i686_msvc", 1892 | "windows_x86_64_gnu", 1893 | "windows_x86_64_gnullvm", 1894 | "windows_x86_64_msvc", 1895 | ] 1896 | 1897 | [[package]] 1898 | name = "windows_aarch64_gnullvm" 1899 | version = "0.52.6" 1900 | source = "registry+https://github.com/rust-lang/crates.io-index" 1901 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1902 | 1903 | [[package]] 1904 | name = "windows_aarch64_msvc" 1905 | version = "0.52.6" 1906 | source = "registry+https://github.com/rust-lang/crates.io-index" 1907 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1908 | 1909 | [[package]] 1910 | name = "windows_i686_gnu" 1911 | version = "0.52.6" 1912 | source = "registry+https://github.com/rust-lang/crates.io-index" 1913 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1914 | 1915 | [[package]] 1916 | name = "windows_i686_gnullvm" 1917 | version = "0.52.6" 1918 | source = "registry+https://github.com/rust-lang/crates.io-index" 1919 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1920 | 1921 | [[package]] 1922 | name = "windows_i686_msvc" 1923 | version = "0.52.6" 1924 | source = "registry+https://github.com/rust-lang/crates.io-index" 1925 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1926 | 1927 | [[package]] 1928 | name = "windows_x86_64_gnu" 1929 | version = "0.52.6" 1930 | source = "registry+https://github.com/rust-lang/crates.io-index" 1931 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1932 | 1933 | [[package]] 1934 | name = "windows_x86_64_gnullvm" 1935 | version = "0.52.6" 1936 | source = "registry+https://github.com/rust-lang/crates.io-index" 1937 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1938 | 1939 | [[package]] 1940 | name = "windows_x86_64_msvc" 1941 | version = "0.52.6" 1942 | source = "registry+https://github.com/rust-lang/crates.io-index" 1943 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1944 | 1945 | [[package]] 1946 | name = "winnow" 1947 | version = "0.6.18" 1948 | source = "registry+https://github.com/rust-lang/crates.io-index" 1949 | checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" 1950 | dependencies = [ 1951 | "memchr", 1952 | ] 1953 | 1954 | [[package]] 1955 | name = "yansi" 1956 | version = "1.0.1" 1957 | source = "registry+https://github.com/rust-lang/crates.io-index" 1958 | checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" 1959 | 1960 | [[package]] 1961 | name = "zerocopy" 1962 | version = "0.7.35" 1963 | source = "registry+https://github.com/rust-lang/crates.io-index" 1964 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 1965 | dependencies = [ 1966 | "byteorder", 1967 | "zerocopy-derive", 1968 | ] 1969 | 1970 | [[package]] 1971 | name = "zerocopy-derive" 1972 | version = "0.7.35" 1973 | source = "registry+https://github.com/rust-lang/crates.io-index" 1974 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 1975 | dependencies = [ 1976 | "proc-macro2", 1977 | "quote", 1978 | "syn", 1979 | ] 1980 | 1981 | [[package]] 1982 | name = "zeroize" 1983 | version = "1.8.1" 1984 | source = "registry+https://github.com/rust-lang/crates.io-index" 1985 | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 1986 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | description = "RBIR stands for Rewrite Bigdata in Rust. RBIR aims to create a big data ecosystem using Rust." 3 | edition = "2021" 4 | license = "Apache-2.0" 5 | name = "rbir" 6 | version = "0.0.0" 7 | 8 | [dependencies] 9 | anyhow = "1.0.89" 10 | futures = "0.3.30" 11 | octocrab = "0.39.0" 12 | serde = { version = "1", features = ["derive"] } 13 | tera = "1.20.0" 14 | tokio = { version = "1.40.0", features = ["rt", "rt-multi-thread", "macros", "fs"] } 15 | toml = "0.8" 16 | 17 | [dev-dependencies] 18 | pretty_assertions = "1.4.1" 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RBIR [![](https://img.shields.io/discord/1283371436773212212?logo=discord&label=discord)](https://discord.gg/SshxvYpn) 2 | 3 | `RBIR` stands for **Rewrite Bigdata in Rust**. RBIR aims to create a big data ecosystem using Rust. 4 | 5 | This project declares our manifesto and serves as a collection of RBIR projects and posts for anyone interested in joining this journey. 6 | 7 | ## Projects 8 | 9 | - [Apache DataFusion Comet](./projects/apache_datafusion_comet.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/datafusion-comet) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/datafusion-comet/contribute) 10 | 11 | A high-performance accelerator for [Apache Spark](https://spark.apache.org/), built on top of the powerful [Apache DataFusion](https://github.com/apache/datafusion) query engine. 12 | - [Apache HoraeDB (incubating)](./projects/apache_horaedb_(incubating).md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/horaedb) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/horaedb/contribute) 13 | 14 | A high-performance, distributed, cloud native time-series database. 15 | - [Arroyo](./projects/arroyo.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/ArroyoSystems/arroyo) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/ArroyoSystems/arroyo/contribute) 16 | 17 | A distributed stream processing engine written in Rust, designed to efficiently perform stateful computations on streams of data. 18 | - [BLAZE](./projects/blaze.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/kwai/blaze) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/kwai/blaze/contribute) 19 | 20 | The Blaze accelerator for Apache Spark leverages native vectorized execution to accelerate query processing. 21 | - [Daft](./projects/daft.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/Eventual-Inc/Daft) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/Eventual-Inc/Daft/contribute) 22 | 23 | A distributed query engine for large-scale data processing in Python and is implemented in Rust. 24 | - [Databend](./projects/databend.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/datafuselabs/databend) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/datafuselabs/databend/contribute) 25 | 26 | An open-source cloud data warehouse that serves as a cost-effective alternative to [Snowflake](https://www.snowflake.com/) 27 | - [Fluvio](./projects/fluvio.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/infinyon/fluvio) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/infinyon/fluvio/contribute) 28 | 29 | Lean and mean distributed stream processing system written in rust and web assembly. Alternative to [Kafka](https://github.com/apache/kafka) + [Flink](https://github.com/apache/flink) in one. 30 | - [GlareDB](./projects/glaredb.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/GlareDB/glaredb) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/GlareDB/glaredb/contribute) 31 | 32 | An analytics DBMS for distributed data. 33 | - [GreptimeDB](./projects/greptimedb.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/GreptimeTeam/greptimedb) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/GreptimeTeam/greptimedb/contribute) 34 | 35 | An open-source, cloud-native, unified time series database for metrics, logs and events with SQL/PromQL supported. 36 | - [LanceDB](./projects/lancedb.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/lancedb/lancedb) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/lancedb/lancedb/contribute) 37 | 38 | An open-source database for vector-search built with persistent storage, which greatly simplifies retrieval, filtering and management of embeddings. 39 | - [ParadeDB](./projects/paradedb.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/paradedb/paradedb) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/paradedb/paradedb/contribute) 40 | 41 | An Elasticsearch alternative built on Postgres. 42 | - [Quickwit](./projects/quickwit.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/quickwit-oss/quickwit) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/quickwit-oss/quickwit/contribute) 43 | 44 | Cloud-native search engine for observability. An open-source alternative to [Datadog](https://www.datadoghq.com/), [Elasticsearch](https://www.elastic.co/elasticsearch), [Loki](https://github.com/grafana/loki), and [Tempo](https://github.com/grafana/tempo) 45 | - [RisingWave](./projects/risingwave.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/risingwavelabs/risingwave) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/risingwavelabs/risingwave/contribute) 46 | 47 | A Postgres-compatible SQL database engineered to provide the simplest and most cost-efficient approach for processing, analyzing, and managing real-time event streaming data 48 | - [SlateDB](./projects/slatedb.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/slatedb/slatedb) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/slatedb/slatedb/contribute) 49 | 50 | A cloud native embedded storage engine built on object storage. 51 | - [TiKV](./projects/tikv.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/tikv/tikv) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/tikv/tikv/contribute) 52 | 53 | Distributed transactional key-value database, originally created to complement [TiDB](https://github.com/pingcap/tidb/) 54 | - [influxdb](./projects/influxdb.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/influxdata/influxdb) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/influxdata/influxdb/contribute) 55 | 56 | Open source time series database for metrics, events, and real-time analytics. 57 | 58 | 59 | ## Libraries 60 | 61 | - [Apache Arrow Rust](./libraries/apache_arrow_rust.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/arrow-rs) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/arrow-rs/contribute) 62 | 63 | Native Rust implementation of [Apache Arrow](https://github.com/apache/arrow) 64 | - [Apache Avro Rust](./libraries/apache_avro_rust.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/avro) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/avro/contribute) 65 | 66 | Rust implementation of [Apache Avro](https://avro.apache.org/) 67 | - [Apache DataFusion](./libraries/apache_datafusion.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/datafusion) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/datafusion/contribute) 68 | 69 | An extensible query engine written in Rust that uses [Apache Arrow](https://github.com/apache/arrow) as its in-memory format. 70 | - [Apache Hudi Rust](./libraries/apache_hudi_rust.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/hudi-rs) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/hudi-rs/contribute) 71 | 72 | Rust implementation of [Apache Hudi](https://hudi.apache.org/) 73 | - [Apache Iceberg Rust](./libraries/apache_iceberg_rust.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/iceberg-rust/) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/iceberg-rust//contribute) 74 | 75 | Rust implementation of [Apache Iceberg](https://iceberg.apache.org/) 76 | - [Apache OpenDAL](./libraries/apache_opendal.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/opendal) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/opendal/contribute) 77 | 78 | A unified data access layer, empowering users to seamlessly and efficiently retrieve data from diverse storage services. 79 | - [Apache Orc Rust](./libraries/apache_orc_rust.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/datafusion-contrib/datafusion-orc) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/datafusion-contrib/datafusion-orc/contribute) 80 | 81 | Rust implementation of [Apache ORC](https://orc.apache.org/) 82 | - [Apache Paimon Rust](./libraries/apache_paimon_rust.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/paimon-rust) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/paimon-rust/contribute) 83 | 84 | Rust implementation of [Apache Paimon](https://paimon.apache.org/) 85 | - [Apache Parquet Rust](./libraries/apache_parquet_rust.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)](https://github.com/apache/arrow-rs) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)](https://github.com/apache/arrow-rs/contribute) 86 | 87 | Rust implementation of [Apache Parquet](https://parquet.apache.org/) 88 | 89 | 90 | ## Posts 91 | 92 | - [Rewrite Bigdata in Rust](https://xuanwo.io/2024/07-rewrite-bigdata-in-rust/) by [@Xuanwo](https://github.com/Xuanwo) 93 | 94 | -------------------------------------------------------------------------------- /data.toml: -------------------------------------------------------------------------------- 1 | # Projects Section =========================================================== 2 | 3 | [[project]] 4 | description = "Distributed transactional key-value database, originally created to complement [TiDB](https://github.com/pingcap/tidb/)" 5 | name = "TiKV" 6 | repo = "https://github.com/tikv/tikv" 7 | 8 | [[project]] 9 | description = "An open-source cloud data warehouse that serves as a cost-effective alternative to [Snowflake](https://www.snowflake.com/)" 10 | name = "Databend" 11 | repo = "https://github.com/datafuselabs/databend" 12 | 13 | [[project]] 14 | description = "Cloud-native search engine for observability. An open-source alternative to [Datadog](https://www.datadoghq.com/), [Elasticsearch](https://www.elastic.co/elasticsearch), [Loki](https://github.com/grafana/loki), and [Tempo](https://github.com/grafana/tempo)" 15 | name = "Quickwit" 16 | repo = "https://github.com/quickwit-oss/quickwit" 17 | 18 | [[project]] 19 | description = "A Postgres-compatible SQL database engineered to provide the simplest and most cost-efficient approach for processing, analyzing, and managing real-time event streaming data" 20 | name = "RisingWave" 21 | repo = "https://github.com/risingwavelabs/risingwave" 22 | 23 | 24 | [[project]] 25 | description = "Open source time series database for metrics, events, and real-time analytics." 26 | name = "influxdb" 27 | repo = "https://github.com/influxdata/influxdb" 28 | 29 | [[project]] 30 | description = "An open-source, cloud-native, unified time series database for metrics, logs and events with SQL/PromQL supported." 31 | name = "GreptimeDB" 32 | repo = "https://github.com/GreptimeTeam/greptimedb" 33 | 34 | [[project]] 35 | description = "A high-performance, distributed, cloud native time-series database." 36 | name = "Apache HoraeDB (incubating)" 37 | repo = "https://github.com/apache/horaedb" 38 | 39 | [[project]] 40 | description = "An Elasticsearch alternative built on Postgres." 41 | name = "ParadeDB" 42 | repo = "https://github.com/paradedb/paradedb" 43 | 44 | [[project]] 45 | description = "An analytics DBMS for distributed data." 46 | name = "GlareDB" 47 | repo = "https://github.com/GlareDB/glaredb" 48 | 49 | [[project]] 50 | description = "Lean and mean distributed stream processing system written in rust and web assembly. Alternative to [Kafka](https://github.com/apache/kafka) + [Flink](https://github.com/apache/flink) in one." 51 | name = "Fluvio" 52 | repo = "https://github.com/infinyon/fluvio" 53 | 54 | [[project]] 55 | description = "An open-source database for vector-search built with persistent storage, which greatly simplifies retrieval, filtering and management of embeddings." 56 | name = "LanceDB" 57 | repo = "https://github.com/lancedb/lancedb" 58 | 59 | [[project]] 60 | description = "A cloud native embedded storage engine built on object storage." 61 | name = "SlateDB" 62 | repo = "https://github.com/slatedb/slatedb" 63 | 64 | [[project]] 65 | description = "A distributed query engine for large-scale data processing in Python and is implemented in Rust." 66 | name = "Daft" 67 | repo = "https://github.com/Eventual-Inc/Daft" 68 | 69 | [[project]] 70 | description = "A distributed stream processing engine written in Rust, designed to efficiently perform stateful computations on streams of data." 71 | name = "Arroyo" 72 | repo = "https://github.com/ArroyoSystems/arroyo" 73 | 74 | [[project]] 75 | description = "A high-performance accelerator for [Apache Spark](https://spark.apache.org/), built on top of the powerful [Apache DataFusion](https://github.com/apache/datafusion) query engine." 76 | name = "Apache DataFusion Comet" 77 | repo = "https://github.com/apache/datafusion-comet" 78 | 79 | [[project]] 80 | description = "The Blaze accelerator for Apache Spark leverages native vectorized execution to accelerate query processing." 81 | name = "BLAZE" 82 | repo = "https://github.com/kwai/blaze" 83 | 84 | # Libraries Section =========================================================== 85 | 86 | [[library]] 87 | description = "A unified data access layer, empowering users to seamlessly and efficiently retrieve data from diverse storage services." 88 | name = "Apache OpenDAL" 89 | repo = "https://github.com/apache/opendal" 90 | 91 | [[library]] 92 | description = "An extensible query engine written in Rust that uses [Apache Arrow](https://github.com/apache/arrow) as its in-memory format." 93 | name = "Apache DataFusion" 94 | repo = "https://github.com/apache/datafusion" 95 | 96 | [[library]] 97 | description = "Native Rust implementation of [Apache Arrow](https://github.com/apache/arrow)" 98 | name = "Apache Arrow Rust" 99 | repo = "https://github.com/apache/arrow-rs" 100 | 101 | [[library]] 102 | description = "Rust implementation of [Apache Iceberg](https://iceberg.apache.org/)" 103 | name = "Apache Iceberg Rust" 104 | repo = "https://github.com/apache/iceberg-rust/" 105 | 106 | [[library]] 107 | description = "Rust implementation of [Apache Paimon](https://paimon.apache.org/)" 108 | name = "Apache Paimon Rust" 109 | repo = "https://github.com/apache/paimon-rust" 110 | 111 | [[library]] 112 | description = "Rust implementation of [Apache Hudi](https://hudi.apache.org/)" 113 | name = "Apache Hudi Rust" 114 | repo = "https://github.com/apache/hudi-rs" 115 | 116 | [[library]] 117 | description = "Rust implementation of [Apache Parquet](https://parquet.apache.org/)" 118 | name = "Apache Parquet Rust" 119 | path = "/parquet" 120 | repo = "https://github.com/apache/arrow-rs" 121 | 122 | [[library]] 123 | description = "Rust implementation of [Apache Avro](https://avro.apache.org/)" 124 | name = "Apache Avro Rust" 125 | path = "/lang/rust" 126 | repo = "https://github.com/apache/avro" 127 | 128 | [[library]] 129 | description = "Rust implementation of [Apache ORC](https://orc.apache.org/)" 130 | name = "Apache Orc Rust" 131 | repo = "https://github.com/datafusion-contrib/datafusion-orc" 132 | 133 | # Posts Section =============================================================== 134 | 135 | [[post]] 136 | author = "[@Xuanwo](https://github.com/Xuanwo)" 137 | link = "https://xuanwo.io/2024/07-rewrite-bigdata-in-rust/" 138 | title = "Rewrite Bigdata in Rust" 139 | -------------------------------------------------------------------------------- /libraries/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewrite-bigdata-in-rust/RBIR/5aeb7a1993789599dfaa055f2b0fe8b413311e30/libraries/.gitkeep -------------------------------------------------------------------------------- /libraries/apache_arrow_rust.md: -------------------------------------------------------------------------------- 1 | # Apache Arrow Rust 2 | 3 | Native Rust implementation of [Apache Arrow](https://github.com/apache/arrow) 4 | 5 | 6 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 7 | - Latest Release: [55.2.0](https://github.com/apache/arrow-rs/releases/tag/55.2.0) at 2025-06-22T13:10:21Z 8 | - Stars: [3026](https://github.com/apache/arrow-rs/stargazers) 9 | 10 | 11 | - [Contributors](https://github.com/apache/arrow-rs/graphs/contributors) 12 | - [Open Issues](https://github.com/apache/arrow-rs/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 13 | - [Open Pull Requests](https://github.com/apache/arrow-rs/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 14 | -------------------------------------------------------------------------------- /libraries/apache_avro_rust.md: -------------------------------------------------------------------------------- 1 | # Apache Avro Rust 2 | 3 | Rust implementation of [Apache Avro](https://avro.apache.org/) 4 | 5 | 6 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 7 | - Latest Release: [release-1.12.0](https://github.com/apache/avro/releases/tag/release-1.12.0) at 2024-08-05T17:30:17Z 8 | - Stars: [3111](https://github.com/apache/avro/stargazers) 9 | 10 | 11 | - [Contributors](https://github.com/apache/avro/graphs/contributors) 12 | - [Open Issues](https://github.com/apache/avro/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 13 | - [Open Pull Requests](https://github.com/apache/avro/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 14 | -------------------------------------------------------------------------------- /libraries/apache_datafusion.md: -------------------------------------------------------------------------------- 1 | # Apache DataFusion 2 | 3 | An extensible query engine written in Rust that uses [Apache Arrow](https://github.com/apache/arrow) as its in-memory format. 4 | 5 | 6 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 7 | - Stars: [7457](https://github.com/apache/datafusion/stargazers) 8 | 9 | 10 | - [Contributors](https://github.com/apache/datafusion/graphs/contributors) 11 | - [Open Issues](https://github.com/apache/datafusion/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 12 | - [Open Pull Requests](https://github.com/apache/datafusion/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 13 | -------------------------------------------------------------------------------- /libraries/apache_hudi_rust.md: -------------------------------------------------------------------------------- 1 | # Apache Hudi Rust 2 | 3 | Rust implementation of [Apache Hudi](https://hudi.apache.org/) 4 | 5 | 6 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 7 | - Latest Release: [release-0.4.0](https://github.com/apache/hudi-rs/releases/tag/release-0.4.0) at 2025-07-03T06:45:37Z 8 | - Stars: [232](https://github.com/apache/hudi-rs/stargazers) 9 | 10 | 11 | - [Contributors](https://github.com/apache/hudi-rs/graphs/contributors) 12 | - [Open Issues](https://github.com/apache/hudi-rs/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 13 | - [Open Pull Requests](https://github.com/apache/hudi-rs/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 14 | -------------------------------------------------------------------------------- /libraries/apache_iceberg_rust.md: -------------------------------------------------------------------------------- 1 | # Apache Iceberg Rust 2 | 3 | Rust implementation of [Apache Iceberg](https://iceberg.apache.org/) 4 | 5 | 6 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 7 | - Latest Release: [v0.5.1](https://github.com/apache/iceberg-rust/releases/tag/v0.5.1) at 2025-06-05T05:18:13Z 8 | - Stars: [1015](https://github.com/apache/iceberg-rust//stargazers) 9 | 10 | 11 | - [Contributors](https://github.com/apache/iceberg-rust//graphs/contributors) 12 | - [Open Issues](https://github.com/apache/iceberg-rust//issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 13 | - [Open Pull Requests](https://github.com/apache/iceberg-rust//pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 14 | -------------------------------------------------------------------------------- /libraries/apache_opendal.md: -------------------------------------------------------------------------------- 1 | # Apache OpenDAL 2 | 3 | A unified data access layer, empowering users to seamlessly and efficiently retrieve data from diverse storage services. 4 | 5 | 6 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 7 | - Latest Release: [v0.53.3](https://github.com/apache/opendal/releases/tag/v0.53.3) at 2025-05-27T06:56:20Z 8 | - Stars: [4256](https://github.com/apache/opendal/stargazers) 9 | 10 | 11 | - [Contributors](https://github.com/apache/opendal/graphs/contributors) 12 | - [Open Issues](https://github.com/apache/opendal/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 13 | - [Open Pull Requests](https://github.com/apache/opendal/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 14 | -------------------------------------------------------------------------------- /libraries/apache_orc_rust.md: -------------------------------------------------------------------------------- 1 | # Apache Orc Rust 2 | 3 | Rust implementation of [Apache ORC](https://orc.apache.org/) 4 | 5 | 6 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 7 | - Latest Release: [v0.4.1](https://github.com/datafusion-contrib/datafusion-orc/releases/tag/v0.4.1) at 2024-10-15T10:38:21Z 8 | - Stars: [43](https://github.com/datafusion-contrib/datafusion-orc/stargazers) 9 | 10 | 11 | - [Contributors](https://github.com/datafusion-contrib/datafusion-orc/graphs/contributors) 12 | - [Open Issues](https://github.com/datafusion-contrib/datafusion-orc/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 13 | - [Open Pull Requests](https://github.com/datafusion-contrib/datafusion-orc/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 14 | -------------------------------------------------------------------------------- /libraries/apache_paimon_rust.md: -------------------------------------------------------------------------------- 1 | # Apache Paimon Rust 2 | 3 | Rust implementation of [Apache Paimon](https://paimon.apache.org/) 4 | 5 | 6 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 7 | - Stars: [128](https://github.com/apache/paimon-rust/stargazers) 8 | 9 | 10 | - [Contributors](https://github.com/apache/paimon-rust/graphs/contributors) 11 | - [Open Issues](https://github.com/apache/paimon-rust/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 12 | - [Open Pull Requests](https://github.com/apache/paimon-rust/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 13 | -------------------------------------------------------------------------------- /libraries/apache_parquet_rust.md: -------------------------------------------------------------------------------- 1 | # Apache Parquet Rust 2 | 3 | Rust implementation of [Apache Parquet](https://parquet.apache.org/) 4 | 5 | 6 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 7 | - Latest Release: [55.2.0](https://github.com/apache/arrow-rs/releases/tag/55.2.0) at 2025-06-22T13:10:21Z 8 | - Stars: [3026](https://github.com/apache/arrow-rs/stargazers) 9 | 10 | 11 | - [Contributors](https://github.com/apache/arrow-rs/graphs/contributors) 12 | - [Open Issues](https://github.com/apache/arrow-rs/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 13 | - [Open Pull Requests](https://github.com/apache/arrow-rs/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 14 | -------------------------------------------------------------------------------- /projects/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewrite-bigdata-in-rust/RBIR/5aeb7a1993789599dfaa055f2b0fe8b413311e30/projects/.gitkeep -------------------------------------------------------------------------------- /projects/apache_datafusion_comet.md: -------------------------------------------------------------------------------- 1 | # Apache DataFusion Comet 2 | 3 | A high-performance accelerator for [Apache Spark](https://spark.apache.org/), built on top of the powerful [Apache DataFusion](https://github.com/apache/datafusion) query engine. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/apache/datafusion-comet/graphs/contributors) 7 | - [Open Issues](https://github.com/apache/datafusion-comet/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/apache/datafusion-comet/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Stars: [992](https://github.com/apache/datafusion-comet/stargazers) 10 | 11 | -------------------------------------------------------------------------------- /projects/apache_horaedb_(incubating).md: -------------------------------------------------------------------------------- 1 | # Apache HoraeDB (incubating) 2 | 3 | A high-performance, distributed, cloud native time-series database. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/apache/horaedb/graphs/contributors) 7 | - [Open Issues](https://github.com/apache/horaedb/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/apache/horaedb/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v2.1.0](https://github.com/apache/horaedb/releases/tag/v2.1.0) at 2024-11-18T02:31:25Z 10 | 11 | - Stars: [2762](https://github.com/apache/horaedb/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/arroyo.md: -------------------------------------------------------------------------------- 1 | # Arroyo 2 | 3 | A distributed stream processing engine written in Rust, designed to efficiently perform stateful computations on streams of data. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/ArroyoSystems/arroyo/graphs/contributors) 7 | - [Open Issues](https://github.com/ArroyoSystems/arroyo/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/ArroyoSystems/arroyo/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v0.14.1](https://github.com/ArroyoSystems/arroyo/releases/tag/v0.14.1) at 2025-06-23T22:52:11Z 10 | 11 | - Stars: [4421](https://github.com/ArroyoSystems/arroyo/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/blaze.md: -------------------------------------------------------------------------------- 1 | # BLAZE 2 | 3 | The Blaze accelerator for Apache Spark leverages native vectorized execution to accelerate query processing. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/kwai/blaze/graphs/contributors) 7 | - [Open Issues](https://github.com/kwai/blaze/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/kwai/blaze/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v5.0.0](https://github.com/kwai/blaze/releases/tag/v5.0.0) at 2025-04-28T09:41:00Z 10 | 11 | - Stars: [1497](https://github.com/kwai/blaze/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/daft.md: -------------------------------------------------------------------------------- 1 | # Daft 2 | 3 | A distributed query engine for large-scale data processing in Python and is implemented in Rust. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/Eventual-Inc/Daft/graphs/contributors) 7 | - [Open Issues](https://github.com/Eventual-Inc/Daft/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/Eventual-Inc/Daft/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v0.5.10](https://github.com/Eventual-Inc/Daft/releases/tag/v0.5.10) at 2025-07-14T06:35:02Z 10 | 11 | - Stars: [3101](https://github.com/Eventual-Inc/Daft/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/databend.md: -------------------------------------------------------------------------------- 1 | # Databend 2 | 3 | An open-source cloud data warehouse that serves as a cost-effective alternative to [Snowflake](https://www.snowflake.com/) 4 | - License: [Other](https://spdx.org/licenses/NOASSERTION.html) 5 | 6 | - [Contributors](https://github.com/datafuselabs/databend/graphs/contributors) 7 | - [Open Issues](https://github.com/datafuselabs/databend/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/datafuselabs/databend/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v1.2.769-nightly](https://github.com/databendlabs/databend/releases/tag/v1.2.769-nightly) at 2025-07-04T03:50:24Z 10 | 11 | - Stars: [8547](https://github.com/datafuselabs/databend/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/fluvio.md: -------------------------------------------------------------------------------- 1 | # Fluvio 2 | 3 | Lean and mean distributed stream processing system written in rust and web assembly. Alternative to [Kafka](https://github.com/apache/kafka) + [Flink](https://github.com/apache/flink) in one. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/infinyon/fluvio/graphs/contributors) 7 | - [Open Issues](https://github.com/infinyon/fluvio/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/infinyon/fluvio/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v0.18.1](https://github.com/infinyon/fluvio/releases/tag/v0.18.1) at 2025-07-04T22:06:55Z 10 | 11 | - Stars: [4962](https://github.com/infinyon/fluvio/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/glaredb.md: -------------------------------------------------------------------------------- 1 | # GlareDB 2 | 3 | An analytics DBMS for distributed data. 4 | - License: [MIT License](https://spdx.org/licenses/MIT.html) 5 | 6 | - [Contributors](https://github.com/GlareDB/glaredb/graphs/contributors) 7 | - [Open Issues](https://github.com/GlareDB/glaredb/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/GlareDB/glaredb/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v25.6.3](https://github.com/GlareDB/glaredb/releases/tag/v25.6.3) at 2025-06-19T22:15:25Z 10 | 11 | - Stars: [940](https://github.com/GlareDB/glaredb/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/greptimedb.md: -------------------------------------------------------------------------------- 1 | # GreptimeDB 2 | 3 | An open-source, cloud-native, unified time series database for metrics, logs and events with SQL/PromQL supported. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/GreptimeTeam/greptimedb/graphs/contributors) 7 | - [Open Issues](https://github.com/GreptimeTeam/greptimedb/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/GreptimeTeam/greptimedb/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v0.15.2](https://github.com/GreptimeTeam/greptimedb/releases/tag/v0.15.2) at 2025-07-10T16:58:33Z 10 | 11 | - Stars: [5378](https://github.com/GreptimeTeam/greptimedb/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/influxdb.md: -------------------------------------------------------------------------------- 1 | # influxdb 2 | 3 | Open source time series database for metrics, events, and real-time analytics. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/influxdata/influxdb/graphs/contributors) 7 | - [Open Issues](https://github.com/influxdata/influxdb/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/influxdata/influxdb/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v3.0.3](https://github.com/influxdata/influxdb/releases/tag/v3.0.3) at 2025-05-16T15:41:16Z 10 | 11 | - Stars: [30328](https://github.com/influxdata/influxdb/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/lancedb.md: -------------------------------------------------------------------------------- 1 | # LanceDB 2 | 3 | An open-source database for vector-search built with persistent storage, which greatly simplifies retrieval, filtering and management of embeddings. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/lancedb/lancedb/graphs/contributors) 7 | - [Open Issues](https://github.com/lancedb/lancedb/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/lancedb/lancedb/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [python-v0.24.1](https://github.com/lancedb/lancedb/releases/tag/python-v0.24.1) at 2025-07-10T21:37:17Z 10 | 11 | - Stars: [7036](https://github.com/lancedb/lancedb/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/paradedb.md: -------------------------------------------------------------------------------- 1 | # ParadeDB 2 | 3 | An Elasticsearch alternative built on Postgres. 4 | - License: [GNU Affero General Public License v3.0](https://spdx.org/licenses/AGPL-3.0.html) 5 | 6 | - [Contributors](https://github.com/paradedb/paradedb/graphs/contributors) 7 | - [Open Issues](https://github.com/paradedb/paradedb/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/paradedb/paradedb/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v0.16.3](https://github.com/paradedb/paradedb/releases/tag/v0.16.3) at 2025-07-07T13:24:01Z 10 | 11 | - Stars: [7302](https://github.com/paradedb/paradedb/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/quickwit.md: -------------------------------------------------------------------------------- 1 | # Quickwit 2 | 3 | Cloud-native search engine for observability. An open-source alternative to [Datadog](https://www.datadoghq.com/), [Elasticsearch](https://www.elastic.co/elasticsearch), [Loki](https://github.com/grafana/loki), and [Tempo](https://github.com/grafana/tempo) 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/quickwit-oss/quickwit/graphs/contributors) 7 | - [Open Issues](https://github.com/quickwit-oss/quickwit/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/quickwit-oss/quickwit/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v0.8.2](https://github.com/quickwit-oss/quickwit/releases/tag/v0.8.2) at 2024-06-17T17:20:56Z 10 | 11 | - Stars: [10225](https://github.com/quickwit-oss/quickwit/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/risingwave.md: -------------------------------------------------------------------------------- 1 | # RisingWave 2 | 3 | A Postgres-compatible SQL database engineered to provide the simplest and most cost-efficient approach for processing, analyzing, and managing real-time event streaming data 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/risingwavelabs/risingwave/graphs/contributors) 7 | - [Open Issues](https://github.com/risingwavelabs/risingwave/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/risingwavelabs/risingwave/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v2.4.3](https://github.com/risingwavelabs/risingwave/releases/tag/v2.4.3) at 2025-07-04T07:14:49Z 10 | 11 | - Stars: [7987](https://github.com/risingwavelabs/risingwave/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/slatedb.md: -------------------------------------------------------------------------------- 1 | # SlateDB 2 | 3 | A cloud native embedded storage engine built on object storage. 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/slatedb/slatedb/graphs/contributors) 7 | - [Open Issues](https://github.com/slatedb/slatedb/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/slatedb/slatedb/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v0.7.0](https://github.com/slatedb/slatedb/releases/tag/v0.7.0) at 2025-06-30T22:04:32Z 10 | 11 | - Stars: [2090](https://github.com/slatedb/slatedb/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /projects/tikv.md: -------------------------------------------------------------------------------- 1 | # TiKV 2 | 3 | Distributed transactional key-value database, originally created to complement [TiDB](https://github.com/pingcap/tidb/) 4 | - License: [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) 5 | 6 | - [Contributors](https://github.com/tikv/tikv/graphs/contributors) 7 | - [Open Issues](https://github.com/tikv/tikv/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 8 | - [Open Pull Requests](https://github.com/tikv/tikv/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 9 | - Latest Release: [v8.5.2](https://github.com/tikv/tikv/releases/tag/v8.5.2) at 2025-06-04T02:58:42Z 10 | 11 | - Stars: [15995](https://github.com/tikv/tikv/stargazers) 12 | 13 | -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "stable" 3 | components = ["clippy", "rust-analyzer", "rustfmt"] 4 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | edition = "2021" 2 | reorder_imports = true 3 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | mod markdown; 2 | mod spec; 3 | mod utils; 4 | 5 | use anyhow::Result; 6 | 7 | #[tokio::main] 8 | async fn main() -> Result<()> { 9 | let data = spec::load().await?; 10 | markdown::render(data).await?; 11 | 12 | Ok(()) 13 | } 14 | -------------------------------------------------------------------------------- /src/markdown.rs: -------------------------------------------------------------------------------- 1 | use crate::spec::{Data, Library, Project}; 2 | use crate::utils; 3 | use anyhow::{anyhow, Result}; 4 | use futures::stream::{futures_unordered::FuturesUnordered, StreamExt}; 5 | use octocrab::models::repos::Release; 6 | use octocrab::models::License; 7 | use octocrab::Octocrab; 8 | use serde::{Deserialize, Serialize}; 9 | use tera::{Context, Tera}; 10 | use tokio::fs::write; 11 | 12 | pub async fn render(data: Data) -> Result<()> { 13 | let token = std::env::var("GITHUB_TOKEN").expect("GITHUB_TOKEN env variable is required"); 14 | let github = Octocrab::builder().personal_token(token).build()?; 15 | 16 | let mut tera = Tera::new("templates/*.tmpl")?; 17 | tera.register_filter("to_snake_case", utils::to_snake_case_filter); 18 | 19 | render_readme(&tera, &data).await?; 20 | render_projects(&github, &tera, &data).await?; 21 | render_libraries(&github, &tera, &data).await?; 22 | 23 | Ok(()) 24 | } 25 | 26 | async fn render_readme(tera: &Tera, data: &Data) -> Result<()> { 27 | let context = Context::from_serialize(data)?; 28 | 29 | let content = tera.render("README.tmpl", &context)?; 30 | write("README.md", content.as_bytes()).await?; 31 | Ok(()) 32 | } 33 | 34 | async fn render_projects(github: &Octocrab, tera: &Tera, data: &Data) -> Result<()> { 35 | let mut tasks: FuturesUnordered<_> = data 36 | .project 37 | .iter() 38 | .map(|project| render_project(github, tera, project)) 39 | .collect(); 40 | 41 | while let Some(result) = tasks.next().await { 42 | result?; 43 | } 44 | 45 | Ok(()) 46 | } 47 | 48 | async fn render_project(github: &Octocrab, tera: &Tera, project: &Project) -> Result<()> { 49 | let repo_status = fetch_repo_status(github, &project.repo).await?; 50 | 51 | let mut context = Context::from_serialize(project)?; 52 | context.insert("status", &repo_status); 53 | 54 | let content = tera.render("project.tmpl", &context)?; 55 | write( 56 | format!("projects/{}.md", utils::to_snake_case(&project.name)), 57 | content.as_bytes(), 58 | ) 59 | .await?; 60 | Ok(()) 61 | } 62 | 63 | async fn render_libraries(github: &Octocrab, tera: &Tera, data: &Data) -> Result<()> { 64 | let mut tasks: FuturesUnordered<_> = data 65 | .library 66 | .iter() 67 | .map(|library| render_library(github, tera, library)) 68 | .collect(); 69 | 70 | while let Some(result) = tasks.next().await { 71 | result?; 72 | } 73 | 74 | Ok(()) 75 | } 76 | 77 | async fn render_library(github: &Octocrab, tera: &Tera, library: &Library) -> Result<()> { 78 | let repo_status = fetch_repo_status(github, &library.repo).await?; 79 | 80 | let mut context = Context::from_serialize(library)?; 81 | context.insert("status", &repo_status); 82 | 83 | let content = tera.render("library.tmpl", &context)?; 84 | write( 85 | format!("libraries/{}.md", utils::to_snake_case(&library.name)), 86 | content.as_bytes(), 87 | ) 88 | .await?; 89 | Ok(()) 90 | } 91 | 92 | #[derive(Serialize, Deserialize, Debug, Clone)] 93 | struct RepoStatus { 94 | license: Option, 95 | latest_release: Option, 96 | stars: Option, 97 | } 98 | 99 | async fn fetch_repo_status(github: &Octocrab, repo: &str) -> Result { 100 | let parts: Vec<&str> = repo.trim_end_matches('/').split('/').collect(); 101 | if parts.len() < 2 { 102 | return Err(anyhow!("Invalid repo url: {repo}")); 103 | } 104 | let owner = parts[parts.len() - 2].to_string(); 105 | let name = parts[parts.len() - 1].to_string(); 106 | 107 | let repo_handler = github.repos(&owner, &name); 108 | 109 | let repo = repo_handler.get().await?; 110 | let license = repo.license; 111 | let latest_release = repo_handler.releases().get_latest().await.ok(); 112 | 113 | Ok(RepoStatus { 114 | license, 115 | latest_release, 116 | stars: repo.stargazers_count, 117 | }) 118 | } 119 | -------------------------------------------------------------------------------- /src/spec.rs: -------------------------------------------------------------------------------- 1 | use anyhow::Result; 2 | use serde::{Deserialize, Serialize}; 3 | use tokio::fs::read_to_string; 4 | 5 | /// Load data from `data.toml`. 6 | pub async fn load() -> Result { 7 | let content = read_to_string("data.toml").await?; 8 | let mut data: Data = toml::from_str(&content)?; 9 | 10 | // Sort data for better display. 11 | data.library.sort(); 12 | data.project.sort(); 13 | data.post.sort(); 14 | 15 | Ok(data) 16 | } 17 | 18 | #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Ord, PartialOrd)] 19 | #[serde(deny_unknown_fields)] 20 | pub struct Data { 21 | pub project: Vec, 22 | pub library: Vec, 23 | pub post: Vec, 24 | } 25 | 26 | #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Ord, PartialOrd)] 27 | #[serde(deny_unknown_fields)] 28 | pub struct Project { 29 | pub name: String, 30 | pub repo: String, 31 | pub description: String, 32 | } 33 | 34 | #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Ord, PartialOrd)] 35 | #[serde(deny_unknown_fields)] 36 | pub struct Library { 37 | pub name: String, 38 | pub repo: String, 39 | pub description: String, 40 | pub path: Option, 41 | } 42 | 43 | #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Ord, PartialOrd)] 44 | #[serde(deny_unknown_fields)] 45 | pub struct Post { 46 | pub title: String, 47 | pub author: String, 48 | pub link: String, 49 | } 50 | 51 | #[cfg(test)] 52 | mod tests { 53 | use super::*; 54 | use anyhow::Result; 55 | use pretty_assertions::assert_eq; 56 | 57 | #[test] 58 | fn test_load_project() -> Result<()> { 59 | let content = r#" 60 | [[project]] 61 | description = "RBIR stands for Rewrite Bigdata in Rust. RBIR aims to create a big data ecosystem using Rust." 62 | name = "RBIR" 63 | repo = "https://github.com/rewrite-bigdata-in-rust/RBIR" 64 | 65 | [[library]] 66 | description = "A unified data access layer, empowering users to seamlessly and efficiently retrieve data from diverse storage services." 67 | name = "Apache OpenDAL" 68 | repo = "https://github.com/apache/opendal" 69 | 70 | [[post]] 71 | author = "[@Xuanwo](https://github.com/Xuanwo)" 72 | link = "https://xuanwo.io/2024/07-rewrite-bigdata-in-rust/" 73 | title = "Rewrite Bigdata in Rust" 74 | "#; 75 | let input: Data = toml::from_str(content)?; 76 | 77 | let expected = Data { 78 | project:vec![ 79 | Project{ 80 | description:"RBIR stands for Rewrite Bigdata in Rust. RBIR aims to create a big data ecosystem using Rust.".to_string(), 81 | name:"RBIR".to_string(), 82 | repo:"https://github.com/rewrite-bigdata-in-rust/RBIR".to_string(), 83 | }], 84 | library: vec![ 85 | Library{ 86 | description: "A unified data access layer, empowering users to seamlessly and efficiently retrieve data from diverse storage services.".to_string(), 87 | name:"Apache OpenDAL".to_string(), 88 | repo:"https://github.com/apache/opendal".to_string(), 89 | path: None, 90 | }], 91 | post:vec![Post { 92 | author:"[@Xuanwo](https://github.com/Xuanwo)".to_string(), 93 | link: "https://xuanwo.io/2024/07-rewrite-bigdata-in-rust/".to_string(), 94 | title: "Rewrite Bigdata in Rust".to_string() 95 | }] 96 | }; 97 | 98 | assert_eq!(input, expected); 99 | 100 | Ok(()) 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /src/utils.rs: -------------------------------------------------------------------------------- 1 | use std::collections::HashMap; 2 | use tera::Value; 3 | 4 | /// Convert given string to snake case. 5 | /// 6 | /// - `Apache OpenDAL` => `apache_opendal` 7 | /// - `LanceDB` => `lancedb` 8 | pub fn to_snake_case(input: &str) -> String { 9 | input.to_lowercase().replace(" ", "_") 10 | } 11 | 12 | pub fn to_snake_case_filter(v: &Value, _: &HashMap) -> tera::Result { 13 | let input = v 14 | .as_str() 15 | .ok_or_else(|| tera::Error::msg("The value is not a string"))?; 16 | Ok(to_snake_case(input).into()) 17 | } 18 | -------------------------------------------------------------------------------- /templates/README.tmpl: -------------------------------------------------------------------------------- 1 | # RBIR [![](https://img.shields.io/discord/1283371436773212212?logo=discord&label=discord)](https://discord.gg/SshxvYpn) 2 | 3 | `RBIR` stands for **Rewrite Bigdata in Rust**. RBIR aims to create a big data ecosystem using Rust. 4 | 5 | This project declares our manifesto and serves as a collection of RBIR projects and posts for anyone interested in joining this journey. 6 | 7 | ## Projects 8 | 9 | {% for v in project -%} 10 | - [{{ v.name }}](./projects/{{ v.name | to_snake_case }}.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)]({{ v.repo }}) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)]({{ v.repo }}/contribute) 11 | 12 | {{ v.description }} 13 | {% endfor %} 14 | 15 | ## Libraries 16 | 17 | {% for v in library -%} 18 | - [{{ v.name }}](./libraries/{{ v.name | to_snake_case }}.md) [![github-repo](https://img.shields.io/badge/open-repo-blue)]({{ v.repo }}) [![start-contribute](https://img.shields.io/badge/start-contribute-blue)]({{ v.repo }}/contribute) 19 | 20 | {{ v.description }} 21 | {% endfor %} 22 | 23 | ## Posts 24 | 25 | {% for v in post -%} 26 | - [{{ v.title }}]({{ v.link }}) by {{ v.author }} 27 | {% endfor %} 28 | -------------------------------------------------------------------------------- /templates/library.tmpl: -------------------------------------------------------------------------------- 1 | # {{ name }} 2 | 3 | {{ description }} 4 | 5 | {% if status.license %} 6 | - License: [{{ status.license.name }}](https://spdx.org/licenses/{{ status.license.spdx_id }}.html) 7 | {%- endif %} 8 | {%- if status.latest_release %} 9 | - Latest Release: [{{ status.latest_release.tag_name }}]({{status.latest_release.html_url}}) at {{ status.latest_release.published_at }} 10 | {%- endif %} 11 | {%- if status.stars %} 12 | - Stars: [{{ status.stars }}]({{ repo }}/stargazers) 13 | {% endif %} 14 | 15 | - [Contributors]({{ repo }}/graphs/contributors) 16 | - [Open Issues]({{ repo }}/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 17 | - [Open Pull Requests]({{ repo }}/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 18 | -------------------------------------------------------------------------------- /templates/project.tmpl: -------------------------------------------------------------------------------- 1 | # {{ name }} 2 | 3 | {{ description }} 4 | 5 | {%- if status.license %} 6 | - License: [{{ status.license.name }}](https://spdx.org/licenses/{{ status.license.spdx_id }}.html) 7 | {% endif %} 8 | - [Contributors]({{ repo }}/graphs/contributors) 9 | - [Open Issues]({{ repo }}/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen) 10 | - [Open Pull Requests]({{ repo }}/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) 11 | {%- if status.latest_release %} 12 | - Latest Release: [{{ status.latest_release.tag_name }}]({{status.latest_release.html_url}}) at {{ status.latest_release.published_at }} 13 | {% endif %} 14 | {%- if status.stars %} 15 | - Stars: [{{ status.stars }}]({{ repo }}/stargazers) 16 | {% endif %} 17 | --------------------------------------------------------------------------------