Results 52 issues of Colin

Some async performance stuff: 1. Concurrency where possible ie: don't do: ```rust let a = foo().await; let b = bar().await; ``` do: ```rust let (a, b) = join!(foo, bar).await; ```...

There are cases where static dispatch is faster than dynamic and there are cases where dynamic can be faster than static. It would be worth noting what the impact of...

Brotli versions prior 1.0.8 are affected by CVE-2020-8927. https://www.cvedetails.com/cve/CVE-2020-8927/ This is an integer overflow and I *believe* it is reachable from the rust bindings, but that's just based on a...

There are two significant problems with Aktors as it stands: 1) My assumption is that performance is considerably hurt by dynamic dispatch used rampantly 2) You can send a message...

The double locking queue is probably a lot slower than required. There's a crossbeam dequeue that will likely work better.

Currently the Actor struct generated will use all method generics and all struct generics. In reality a struct generic that is *not ever used* in any methods will never show...

help wanted

We use an atomic counter to determine if our actor should be freed, and then load that atomic every time the queue for the actor is empty. (a) The atomic...

If actors never self reference this shouldn't be necessary. Allow passing in some sort of parameter to the macro to not attempt to set the field.

Currently every actor generated contains an extern crate and some use statements - so if you have more than one actor, compilation fails. Instead, moving the necessary types into the...

It would be interesting to do a couple of benchmarks. In particular: * equivalent Tokio / Futures implementation * equivalent Erlang implementation * equivalent Akka implementation * equivalent Pony implementation...