Go async #730

Gesloten
igalic wil 46 commits van go/async samenvoegen met master

46 Commits (main)

Auteur SHA1 Bericht Datum
Mina Galić b596e77f03
remove redundant use statements 4 jaren geleden
Mina Galić 41f97b01f0
unroll filter_map() to easier .await 4 jaren geleden
Mina Galić a508a4150c
remove redundant use statements 4 jaren geleden
Mina Galić 25c40adf20
yet another dubious clippy warnings fix re returns 4 jaren geleden
Mina Galić 7490567a21
fix warnings about unused doc comments
we do this by making the macro parse and generate doc comments
4 jaren geleden
Mina Galić 492bbb1ba6
make clippy happy with a weird quirk wrt return
not happy about this lint or rust behaviour where the return statement
must not have a `;`
4 jaren geleden
Mina Galić cf3708e1c6
make clippy happy by removing unused imports 4 jaren geleden
Mina Galić df442002c2
replace .map().map_err() with a match
so we can .await without worries.
plus, it changes nothing about the code, other than making the intent
clearer at first sight.
4 jaren geleden
Mina Galić 07036b5fad
upgrade validator: it now uses types! in macros!! 4 jaren geleden
Mina Galić 0726375859
add another async (and correctly convert followers_count) 4 jaren geleden
Mina Galić cb1c260692
remove an experiment of disabling Send… it makes no sense 4 jaren geleden
Mina Galić de6bfca084
removed a few unused imports 4 jaren geleden
Mina Galić 7aabb9661e
upgrade webfinger everywhere, and implement async 4 jaren geleden
Mina Galić 18bb413011
add async/.await until all our errors are the same:
that our Connection is not Send-safe.
4 jaren geleden
Mina Galić d2881ee3f7
add async/.await until all our errors are the same: that our Connection is not Send-safe. 4 jaren geleden
Mina Galić 850b3c1337
add async/.await until all our errors are the same:
that our Connection is not Send-safe.
once we get there, we can start thinking about restructing the way we
pass along our connection, or consider using #[database].
4 jaren geleden
Mina Galić 44ebce516c
fix some, break some compiling by adding async/await in front of it
i forgot that we can't `Send` diesel connections over threads, so this
is going to require some rethinking.
4 jaren geleden
Mina Galić 3c830ab0ce
move towards using #[rocket::async_trait]
this also upgrades some dependencies
some of that fixes stuff, others breaks stuff.
4 jaren geleden
Mina Galić 097d0ea9ce
make plume-models async (again) 4 jaren geleden
Mina Galić 6fe16c9f84
upgrade and use futures… then block_on .await in a trait? 4 jaren geleden
Mina Galić 43cb9f700c
update webfinger
as requested in https://github.com/Plume-org/webfinger/issues/8
and provided in https://github.com/Plume-org/webfinger/pull/9

```
meena@76ix ~/s/a/plume (go/async) [101]> cargo update --package webfinger
    Updating crates.io index
    Updating git repository `https://github.com/Plume-org/webfinger`
    Removing bytes v0.4.12
    Removing cookie v0.12.0
    Removing cookie_store v0.7.0
    Removing crossbeam-deque v0.7.2
    Removing crossbeam-epoch v0.8.0
    Removing crossbeam-queue v0.1.2
    Removing crossbeam-utils v0.7.0
    Removing h2 v0.1.26
    Removing http v0.1.21
    Removing http-body v0.1.0
    Removing hyper v0.12.35
    Removing hyper-tls v0.3.2
    Removing publicsuffix v1.5.4
    Removing reqwest v0.9.24
    Removing serde_urlencoded v0.5.5
    Removing string v0.2.1
    Removing tokio v0.1.22
    Removing tokio-buf v0.1.1
    Removing tokio-current-thread v0.1.6
    Removing tokio-executor v0.1.9
    Removing tokio-io v0.1.12
    Removing tokio-reactor v0.1.11
    Removing tokio-sync v0.1.7
    Removing tokio-tcp v0.1.3
    Removing tokio-threadpool v0.1.17
    Removing tokio-timer v0.2.12
    Removing try_from v0.3.2
    Removing want v0.2.0
      Adding webfinger v0.5.0 (https://github.com/Plume-org/webfinger?rev=update-deps#cdaab95e)
    Removing webfinger v0.5.0
meena@76ix ~/s/a/plume (go/async)>
```
4 jaren geleden
Mina Galić 2c285b9aca
start async-ifying routes
template utils and error routes
4 jaren geleden
Mina Galić e4bb73d22e
cargo clippy 4 jaren geleden
Mina Galić e9c7259ffb
cargo fmt 4 jaren geleden
Mina Galić be8c67ee9a
move reqwest client out of thread spawning
this way, we only spawn one, and reuse that.
4 jaren geleden
Mina Galić 65b2c38c29
.await? result from read_to_string() 4 jaren geleden
Jeb Rosen 8aa99cea35
move signature outside the spawning
this allows us to actually move stuff into the async block
and we can drop the 'static life-time.
4 jaren geleden
Mina Galić a010025074
asyncify reqwest calls (again?) 4 jaren geleden
Mina Galić 82088596a8
asyncify from_activity calls (i.e.: block_on()) 4 jaren geleden
Mina Galić 87ce3a7b51
asyncify plume-models: media upload is now async
including the use of tokio!
4 jaren geleden
Mina Galić 3472a58299
move ClientBuilder into thread, since we cannot Copy it 4 jaren geleden
Mina Galić a3f165f9f4
Use blocking reqwest API in defer
defer, or, trait functions such as it in general(?) cannot be async (yet)
4 jaren geleden
Mina Galić 25c5da1a7c
add tokio (0.2) as dependency to further async-ify our FromData code
i'm using this opportunity to also update reqwest (0.10), but it's
turning out to be a little trickier, as it requires more modern async
setup, and that appears to need a lot of thinking…
4 jaren geleden
Mina Galić 022e037eea
when using macros!() we need to import the things that they use 4 jaren geleden
Mina Galić 45c335e17b
"manually" create ETag and Cache-Control headers 4 jaren geleden
Mina Galić b51551973a
start fixing tests in plume-models 4 jaren geleden
Mina Galić 59e5c49aa8
convert plume-models to all async
where sensible! note that State has no asynchronous work to do, so
wrapping it up in async makes no sense.
4 jaren geleden
Mina Galić ce119ffe50
start making PlumeRocket async 4 jaren geleden
Mina Galić 944f8c42fa
plume-models: convert api-tokens. use DbConn::from_request() directly
there doesn't seem to be a request.guard_async (yet?)
4 jaren geleden
Mina Galić 909f677bdd
plume-models: convert admin & api-tokens to async
n.b.: I do *not* like the error handling in api_tokens 😒
4 jaren geleden
Mina Galić fd9764ff17
plume-common: also make requests async 4 jaren geleden
Mina Galić 75722abc9e
rocket does not need decl_macro anymore 4 jaren geleden
Mina Galić ec9b699c6e
convert plume-common to rocket async
it only took 3 hours of @jebrosen's patient help.
4 jaren geleden
Mina Galić bb5c2b69a7
update rocket* everywhere!
and run cargo update
4 jaren geleden
Mina Galić e52944e477
update rocket*; which gets us stuck in dependency conflicts 4 jaren geleden
Mina Galić 928470610e
remove csrf for now, so we can update the rest 4 jaren geleden