|
@@ -112,6 +112,17 @@ dependencies = [
|
|
|
"pin-project-lite",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "async-channel"
|
|
|
+version = "1.9.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
|
|
|
+dependencies = [
|
|
|
+ "concurrent-queue",
|
|
|
+ "event-listener 2.5.3",
|
|
|
+ "futures-core",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "async-channel"
|
|
|
version = "2.3.1"
|
|
@@ -132,8 +143,8 @@ checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0"
|
|
|
dependencies = [
|
|
|
"async-task",
|
|
|
"concurrent-queue",
|
|
|
- "fastrand",
|
|
|
- "futures-lite",
|
|
|
+ "fastrand 2.1.0",
|
|
|
+ "futures-lite 2.3.0",
|
|
|
"slab",
|
|
|
]
|
|
|
|
|
@@ -143,9 +154,44 @@ version = "2.1.2"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
|
|
|
dependencies = [
|
|
|
- "async-lock",
|
|
|
+ "async-lock 3.4.0",
|
|
|
+ "blocking",
|
|
|
+ "futures-lite 2.3.0",
|
|
|
+]
|
|
|
+
|
|
|
+[[package]]
|
|
|
+name = "async-global-executor"
|
|
|
+version = "2.4.1"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
|
|
|
+dependencies = [
|
|
|
+ "async-channel 2.3.1",
|
|
|
+ "async-executor",
|
|
|
+ "async-io 2.3.3",
|
|
|
+ "async-lock 3.4.0",
|
|
|
"blocking",
|
|
|
- "futures-lite",
|
|
|
+ "futures-lite 2.3.0",
|
|
|
+ "once_cell",
|
|
|
+]
|
|
|
+
|
|
|
+[[package]]
|
|
|
+name = "async-io"
|
|
|
+version = "1.13.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
|
|
|
+dependencies = [
|
|
|
+ "async-lock 2.8.0",
|
|
|
+ "autocfg",
|
|
|
+ "cfg-if",
|
|
|
+ "concurrent-queue",
|
|
|
+ "futures-lite 1.13.0",
|
|
|
+ "log",
|
|
|
+ "parking",
|
|
|
+ "polling 2.8.0",
|
|
|
+ "rustix 0.37.27",
|
|
|
+ "slab",
|
|
|
+ "socket2 0.4.10",
|
|
|
+ "waker-fn",
|
|
|
]
|
|
|
|
|
|
[[package]]
|
|
@@ -154,19 +200,28 @@ version = "2.3.3"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
|
|
|
dependencies = [
|
|
|
- "async-lock",
|
|
|
+ "async-lock 3.4.0",
|
|
|
"cfg-if",
|
|
|
"concurrent-queue",
|
|
|
"futures-io",
|
|
|
- "futures-lite",
|
|
|
+ "futures-lite 2.3.0",
|
|
|
"parking",
|
|
|
- "polling",
|
|
|
- "rustix",
|
|
|
+ "polling 3.7.1",
|
|
|
+ "rustix 0.38.34",
|
|
|
"slab",
|
|
|
"tracing",
|
|
|
"windows-sys 0.52.0",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "async-lock"
|
|
|
+version = "2.8.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
|
|
|
+dependencies = [
|
|
|
+ "event-listener 2.5.3",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "async-lock"
|
|
|
version = "3.4.0"
|
|
@@ -184,16 +239,16 @@ version = "2.2.3"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "f7eda79bbd84e29c2b308d1dc099d7de8dcc7035e48f4bf5dc4a531a44ff5e2a"
|
|
|
dependencies = [
|
|
|
- "async-channel",
|
|
|
- "async-io",
|
|
|
- "async-lock",
|
|
|
+ "async-channel 2.3.1",
|
|
|
+ "async-io 2.3.3",
|
|
|
+ "async-lock 3.4.0",
|
|
|
"async-signal",
|
|
|
"async-task",
|
|
|
"blocking",
|
|
|
"cfg-if",
|
|
|
"event-listener 5.3.1",
|
|
|
- "futures-lite",
|
|
|
- "rustix",
|
|
|
+ "futures-lite 2.3.0",
|
|
|
+ "rustix 0.38.34",
|
|
|
"tracing",
|
|
|
"windows-sys 0.52.0",
|
|
|
]
|
|
@@ -215,18 +270,44 @@ version = "0.2.7"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "329972aa325176e89114919f2a80fdae4f4c040f66a370b1a1159c6c0f94e7aa"
|
|
|
dependencies = [
|
|
|
- "async-io",
|
|
|
- "async-lock",
|
|
|
+ "async-io 2.3.3",
|
|
|
+ "async-lock 3.4.0",
|
|
|
"atomic-waker",
|
|
|
"cfg-if",
|
|
|
"futures-core",
|
|
|
"futures-io",
|
|
|
- "rustix",
|
|
|
+ "rustix 0.38.34",
|
|
|
"signal-hook-registry",
|
|
|
"slab",
|
|
|
"windows-sys 0.52.0",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "async-std"
|
|
|
+version = "1.12.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
|
|
|
+dependencies = [
|
|
|
+ "async-channel 1.9.0",
|
|
|
+ "async-global-executor",
|
|
|
+ "async-io 1.13.0",
|
|
|
+ "async-lock 2.8.0",
|
|
|
+ "crossbeam-utils",
|
|
|
+ "futures-channel",
|
|
|
+ "futures-core",
|
|
|
+ "futures-io",
|
|
|
+ "futures-lite 1.13.0",
|
|
|
+ "gloo-timers",
|
|
|
+ "kv-log-macro",
|
|
|
+ "log",
|
|
|
+ "memchr",
|
|
|
+ "once_cell",
|
|
|
+ "pin-project-lite",
|
|
|
+ "pin-utils",
|
|
|
+ "slab",
|
|
|
+ "wasm-bindgen-futures",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "async-task"
|
|
|
version = "4.7.1"
|
|
@@ -382,10 +463,10 @@ version = "1.6.1"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
|
|
|
dependencies = [
|
|
|
- "async-channel",
|
|
|
+ "async-channel 2.3.1",
|
|
|
"async-task",
|
|
|
"futures-io",
|
|
|
- "futures-lite",
|
|
|
+ "futures-lite 2.3.0",
|
|
|
"piper",
|
|
|
]
|
|
|
|
|
@@ -1098,6 +1179,15 @@ version = "0.1.9"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "fastrand"
|
|
|
+version = "1.9.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
|
|
|
+dependencies = [
|
|
|
+ "instant",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "fastrand"
|
|
|
version = "2.1.0"
|
|
@@ -1273,13 +1363,28 @@ version = "0.3.30"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "futures-lite"
|
|
|
+version = "1.13.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
|
|
|
+dependencies = [
|
|
|
+ "fastrand 1.9.0",
|
|
|
+ "futures-core",
|
|
|
+ "futures-io",
|
|
|
+ "memchr",
|
|
|
+ "parking",
|
|
|
+ "pin-project-lite",
|
|
|
+ "waker-fn",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "futures-lite"
|
|
|
version = "2.3.0"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
|
|
|
dependencies = [
|
|
|
- "fastrand",
|
|
|
+ "fastrand 2.1.0",
|
|
|
"futures-core",
|
|
|
"futures-io",
|
|
|
"parking",
|
|
@@ -1576,6 +1681,18 @@ dependencies = [
|
|
|
"regex-syntax 0.8.3",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "gloo-timers"
|
|
|
+version = "0.2.6"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
|
|
|
+dependencies = [
|
|
|
+ "futures-channel",
|
|
|
+ "futures-core",
|
|
|
+ "js-sys",
|
|
|
+ "wasm-bindgen",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "gobject-sys"
|
|
|
version = "0.15.10"
|
|
@@ -1820,7 +1937,7 @@ dependencies = [
|
|
|
"httpdate",
|
|
|
"itoa 1.0.11",
|
|
|
"pin-project-lite",
|
|
|
- "socket2",
|
|
|
+ "socket2 0.5.7",
|
|
|
"tokio",
|
|
|
"tower-service",
|
|
|
"tracing",
|
|
@@ -1970,6 +2087,17 @@ dependencies = [
|
|
|
"cfg-if",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "io-lifetimes"
|
|
|
+version = "1.0.11"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
|
|
|
+dependencies = [
|
|
|
+ "hermit-abi",
|
|
|
+ "libc",
|
|
|
+ "windows-sys 0.48.0",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "ipnet"
|
|
|
version = "2.9.0"
|
|
@@ -2079,6 +2207,15 @@ dependencies = [
|
|
|
"selectors",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "kv-log-macro"
|
|
|
+version = "1.0.7"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
|
|
|
+dependencies = [
|
|
|
+ "log",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "lazy_static"
|
|
|
version = "1.4.0"
|
|
@@ -2137,6 +2274,12 @@ version = "0.2.0"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e"
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "linux-raw-sys"
|
|
|
+version = "0.3.8"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "linux-raw-sys"
|
|
|
version = "0.4.14"
|
|
@@ -2158,6 +2301,9 @@ name = "log"
|
|
|
version = "0.4.21"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
|
|
|
+dependencies = [
|
|
|
+ "value-bag",
|
|
|
+]
|
|
|
|
|
|
[[package]]
|
|
|
name = "loom"
|
|
@@ -2985,7 +3131,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391"
|
|
|
dependencies = [
|
|
|
"atomic-waker",
|
|
|
- "fastrand",
|
|
|
+ "fastrand 2.1.0",
|
|
|
"futures-io",
|
|
|
]
|
|
|
|
|
@@ -3043,6 +3189,22 @@ dependencies = [
|
|
|
"miniz_oxide",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "polling"
|
|
|
+version = "2.8.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
|
|
|
+dependencies = [
|
|
|
+ "autocfg",
|
|
|
+ "bitflags 1.3.2",
|
|
|
+ "cfg-if",
|
|
|
+ "concurrent-queue",
|
|
|
+ "libc",
|
|
|
+ "log",
|
|
|
+ "pin-project-lite",
|
|
|
+ "windows-sys 0.48.0",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "polling"
|
|
|
version = "3.7.1"
|
|
@@ -3053,7 +3215,7 @@ dependencies = [
|
|
|
"concurrent-queue",
|
|
|
"hermit-abi",
|
|
|
"pin-project-lite",
|
|
|
- "rustix",
|
|
|
+ "rustix 0.38.34",
|
|
|
"tracing",
|
|
|
"windows-sys 0.52.0",
|
|
|
]
|
|
@@ -3427,6 +3589,20 @@ dependencies = [
|
|
|
"semver",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "rustix"
|
|
|
+version = "0.37.27"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
|
|
|
+dependencies = [
|
|
|
+ "bitflags 1.3.2",
|
|
|
+ "errno",
|
|
|
+ "io-lifetimes",
|
|
|
+ "libc",
|
|
|
+ "linux-raw-sys 0.3.8",
|
|
|
+ "windows-sys 0.48.0",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "rustix"
|
|
|
version = "0.38.34"
|
|
@@ -3436,7 +3612,7 @@ dependencies = [
|
|
|
"bitflags 2.5.0",
|
|
|
"errno",
|
|
|
"libc",
|
|
|
- "linux-raw-sys",
|
|
|
+ "linux-raw-sys 0.4.14",
|
|
|
"windows-sys 0.52.0",
|
|
|
]
|
|
|
|
|
@@ -3756,6 +3932,16 @@ version = "1.13.2"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "socket2"
|
|
|
+version = "0.4.10"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
|
|
|
+dependencies = [
|
|
|
+ "libc",
|
|
|
+ "winapi",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "socket2"
|
|
|
version = "0.5.7"
|
|
@@ -4326,6 +4512,7 @@ name = "tauri-app"
|
|
|
version = "1.2.0"
|
|
|
dependencies = [
|
|
|
"anyhow",
|
|
|
+ "async-std",
|
|
|
"async-trait",
|
|
|
"hex",
|
|
|
"home",
|
|
@@ -4340,6 +4527,7 @@ dependencies = [
|
|
|
"tauri-plugin-persisted-scope",
|
|
|
"tauri-plugin-sql",
|
|
|
"thiserror",
|
|
|
+ "tokio",
|
|
|
"tracing",
|
|
|
"tracing-subscriber",
|
|
|
"trash",
|
|
@@ -4535,8 +4723,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
|
|
|
dependencies = [
|
|
|
"cfg-if",
|
|
|
- "fastrand",
|
|
|
- "rustix",
|
|
|
+ "fastrand 2.1.0",
|
|
|
+ "rustix 0.38.34",
|
|
|
"windows-sys 0.52.0",
|
|
|
]
|
|
|
|
|
@@ -4655,11 +4843,25 @@ dependencies = [
|
|
|
"libc",
|
|
|
"mio",
|
|
|
"num_cpus",
|
|
|
+ "parking_lot",
|
|
|
"pin-project-lite",
|
|
|
- "socket2",
|
|
|
+ "signal-hook-registry",
|
|
|
+ "socket2 0.5.7",
|
|
|
+ "tokio-macros",
|
|
|
"windows-sys 0.48.0",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "tokio-macros"
|
|
|
+version = "2.3.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
|
|
|
+dependencies = [
|
|
|
+ "proc-macro2",
|
|
|
+ "quote",
|
|
|
+ "syn 2.0.66",
|
|
|
+]
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "tokio-native-tls"
|
|
|
version = "0.3.1"
|
|
@@ -4959,6 +5161,12 @@ version = "0.1.0"
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "value-bag"
|
|
|
+version = "1.9.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101"
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "vcpkg"
|
|
|
version = "0.2.15"
|
|
@@ -5003,6 +5211,12 @@ dependencies = [
|
|
|
"libc",
|
|
|
]
|
|
|
|
|
|
+[[package]]
|
|
|
+name = "waker-fn"
|
|
|
+version = "1.2.0"
|
|
|
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
+checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
|
|
|
+
|
|
|
[[package]]
|
|
|
name = "walkdir"
|
|
|
version = "2.5.0"
|
|
@@ -5127,7 +5341,7 @@ checksum = "34e9e6b6d4a2bb4e7e69433e0b35c7923b95d4dc8503a84d25ec917a4bbfdf07"
|
|
|
dependencies = [
|
|
|
"cc",
|
|
|
"downcast-rs",
|
|
|
- "rustix",
|
|
|
+ "rustix 0.38.34",
|
|
|
"scoped-tls",
|
|
|
"smallvec",
|
|
|
"wayland-sys",
|
|
@@ -5140,7 +5354,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "1e63801c85358a431f986cffa74ba9599ff571fc5774ac113ed3b490c19a1133"
|
|
|
dependencies = [
|
|
|
"bitflags 2.5.0",
|
|
|
- "rustix",
|
|
|
+ "rustix 0.38.34",
|
|
|
"wayland-backend",
|
|
|
"wayland-scanner",
|
|
|
]
|
|
@@ -5877,7 +6091,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12"
|
|
|
dependencies = [
|
|
|
"gethostname",
|
|
|
- "rustix",
|
|
|
+ "rustix 0.38.34",
|
|
|
"x11rb-protocol",
|
|
|
]
|
|
|
|
|
@@ -5894,8 +6108,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
|
|
|
dependencies = [
|
|
|
"libc",
|
|
|
- "linux-raw-sys",
|
|
|
- "rustix",
|
|
|
+ "linux-raw-sys 0.4.14",
|
|
|
+ "rustix 0.38.34",
|
|
|
]
|
|
|
|
|
|
[[package]]
|
|
@@ -5917,8 +6131,8 @@ dependencies = [
|
|
|
"async-broadcast",
|
|
|
"async-executor",
|
|
|
"async-fs",
|
|
|
- "async-io",
|
|
|
- "async-lock",
|
|
|
+ "async-io 2.3.3",
|
|
|
+ "async-lock 3.4.0",
|
|
|
"async-process",
|
|
|
"async-recursion",
|
|
|
"async-task",
|