actix / actix-web

Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
https://actix.rs
Apache License 2.0
21.59k stars 1.67k forks source link

The trait bound `Ws: actix::actor::Actor` is not satisfied #2121

Closed reza-ebrahimi closed 3 years ago

reza-ebrahimi commented 3 years ago

Problem: The trait bound `Ws: actix::actor::Actor` is not satisfied compile error.

Your Environment:

$ uname -a
Linux dev 5.4.0-70-generic #78~18.04.1-Ubuntu SMP Sat Mar 20 14:10:07 UTC 2021 x86_64 x86_64 x86_64 GNU/Linu

Rust Version (I.e, output of rustc -V):

$ rustc -V
rustc 1.51.0 (2fd73fabe 2021-03-23)

Actix Web Version:

[dependencies]
actix = "0.11.0"
actix-web = "3"
actix-web-actors = "3.0.0"

Test Code:

use actix::prelude::*;
use actix_web_actors::*;

struct Ws;

impl Actor for Ws {
    type Context = ws::WebsocketContext<Self>;
}

impl StreamHandler<Result<ws::Message, ws::ProtocolError>> for Ws {
    fn handle(&mut self, msg: Result<ws::Message, ws::ProtocolError>, ctx: &mut Self::Context) {
        match msg.unwrap() {
            ws::Message::Ping(msg) => ctx.pong(&msg),
            ws::Message::Text(text) => ctx.text(text),
            ws::Message::Binary(bin) => ctx.binary(bin),
            ws::Message::Close(reason) => ctx.close(reason),
            _ => {}
        }
    }
}

fn main() {
    println!("Hello, world!");
}

Error:

error[E0277]: the trait bound `Ws: actix::actor::Actor` is not satisfied
   --> src/main.rs:7:5
    |
7   |     type Context = ws::WebsocketContext<Self>;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `actix::actor::Actor` is not implemented for `Ws`
fakeshadow commented 3 years ago

actix-web-actors 3.0 does not support actix 0.11. Use 0.10 instead

reza-ebrahimi commented 3 years ago

@fakeshadow Thank you! It compiles now.

[dependencies]
actix = "0.10.0"
codabrink commented 3 years ago

Using resolver = "2" breaks the actix = "0.10" fix.

Unfortunately I need resolver = "2" for wgpu.

thespooler commented 3 years ago

Will actix-web-actors ever support newer actix? It's still broken as of 0.12.0.

EduRuizzo commented 2 years ago

Same issue, are there any plans to support actors in 0.12.0 or future actix versions?

robjtede commented 2 years ago

yes, the current master branch here is using 0.12

kvzn commented 2 years ago

Current master branch supports actix 0.12 but not actix-web 3

Alphapage commented 2 years ago

actix-web= "4.0.0-beta.21" doesn't solve this problem. Is it impossible to use Websocket with actix for almost a year without downgrade?

robjtede commented 2 years ago

Impossible? Certainly not. The options are:

Alphapage commented 2 years ago

4.0.0-rc.2 doesn't solve this problem. So, need to downgrade to actix 0.10 as I told previously. Sorry.

Silentdoer commented 2 years ago

4.0.0-rc.2 doesn't solve this problem. So, need to downgrade to actix 0.10 as I told previously. Sorry.

it works fine for me

joepio commented 2 years ago

I was having build issues in my CI giving this error:

the trait `actix::actor::Actor` is not implemented for `WebSocketConnection`

Without having changed any relevant code, so it had to be something that was updated upstream. Using --locked worked, so I was pretty sure it's a version.

Anyways, setting actix-web-actors = "=4.0.0" fixed this for me.

I think it's a actix-web-actors 4.1.0 issue.

aliemjay commented 2 years ago

@joepio Please reproduce the error again and then dump the output of cargo tree. This should help trqcing the error.

joepio commented 2 years ago

@aliemjay

Click to see a tree! ``` atomic-server v0.31.1 (/Users/joep/dev/github/joepio/atomic-data-rust/server) ├── acme-lib v0.8.2 │ ├── base64 v0.13.0 │ ├── lazy_static v1.4.0 │ ├── log v0.4.16 │ │ ├── cfg-if v1.0.0 │ │ └── value-bag v1.0.0-alpha.8 │ │ └── ctor v0.1.22 (proc-macro) │ │ ├── quote v1.0.17 │ │ │ └── proc-macro2 v1.0.36 │ │ │ └── unicode-xid v0.2.2 │ │ └── syn v1.0.90 │ │ ├── proc-macro2 v1.0.36 (*) │ │ ├── quote v1.0.17 (*) │ │ └── unicode-xid v0.2.2 │ │ [build-dependencies] │ │ └── version_check v0.9.4 │ ├── openssl v0.10.38 │ │ ├── bitflags v1.3.2 │ │ ├── cfg-if v1.0.0 │ │ ├── foreign-types v0.3.2 │ │ │ └── foreign-types-shared v0.1.1 │ │ ├── libc v0.2.121 │ │ ├── once_cell v1.10.0 │ │ └── openssl-sys v0.9.72 │ │ └── libc v0.2.121 │ │ [build-dependencies] │ │ ├── autocfg v1.1.0 │ │ ├── cc v1.0.73 │ │ │ └── jobserver v0.1.24 │ │ │ └── libc v0.2.121 │ │ └── pkg-config v0.3.24 │ ├── serde v1.0.136 │ │ └── serde_derive v1.0.136 (proc-macro) │ │ ├── proc-macro2 v1.0.36 (*) │ │ ├── quote v1.0.17 (*) │ │ └── syn v1.0.90 (*) │ ├── serde_json v1.0.79 │ │ ├── itoa v1.0.1 │ │ ├── ryu v1.0.9 │ │ └── serde v1.0.136 (*) │ ├── time v0.1.44 │ │ └── libc v0.2.121 │ └── ureq v1.5.5 │ ├── base64 v0.13.0 │ ├── chunked_transfer v1.4.0 │ ├── cookie v0.14.4 │ │ ├── percent-encoding v2.1.0 │ │ └── time v0.2.27 │ │ ├── const_fn v0.4.9 (proc-macro) │ │ ├── libc v0.2.121 │ │ ├── standback v0.2.17 │ │ │ [build-dependencies] │ │ │ └── version_check v0.9.4 │ │ └── time-macros v0.1.1 │ │ ├── proc-macro-hack v0.5.19 (proc-macro) │ │ └── time-macros-impl v0.1.2 (proc-macro) │ │ ├── proc-macro-hack v0.5.19 (proc-macro) │ │ ├── proc-macro2 v1.0.36 (*) │ │ ├── quote v1.0.17 (*) │ │ ├── standback v0.2.17 (*) │ │ └── syn v1.0.90 (*) │ │ [build-dependencies] │ │ └── version_check v0.9.4 │ │ [build-dependencies] │ │ └── version_check v0.9.4 │ ├── cookie_store v0.12.0 │ │ ├── cookie v0.14.4 (*) │ │ ├── idna v0.2.3 │ │ │ ├── matches v0.1.9 │ │ │ ├── unicode-bidi v0.3.7 │ │ │ └── unicode-normalization v0.1.19 │ │ │ └── tinyvec v1.5.1 │ │ │ └── tinyvec_macros v0.1.0 │ │ ├── log v0.4.16 (*) │ │ ├── publicsuffix v1.5.6 │ │ │ ├── idna v0.2.3 (*) │ │ │ └── url v2.2.2 │ │ │ ├── form_urlencoded v1.0.1 │ │ │ │ ├── matches v0.1.9 │ │ │ │ └── percent-encoding v2.1.0 │ │ │ ├── idna v0.2.3 (*) │ │ │ ├── matches v0.1.9 │ │ │ └── percent-encoding v2.1.0 │ │ ├── serde v1.0.136 (*) │ │ ├── serde_json v1.0.79 (*) │ │ ├── time v0.2.27 (*) │ │ └── url v2.2.2 (*) │ ├── log v0.4.16 (*) │ ├── once_cell v1.10.0 │ ├── qstring v0.7.2 │ │ └── percent-encoding v2.1.0 │ ├── rustls v0.19.1 │ │ ├── base64 v0.13.0 │ │ ├── log v0.4.16 (*) │ │ ├── ring v0.16.20 │ │ │ └── untrusted v0.7.1 │ │ │ [build-dependencies] │ │ │ └── cc v1.0.73 (*) │ │ ├── sct v0.6.1 │ │ │ ├── ring v0.16.20 (*) │ │ │ └── untrusted v0.7.1 │ │ └── webpki v0.21.4 │ │ ├── ring v0.16.20 (*) │ │ └── untrusted v0.7.1 │ ├── url v2.2.2 (*) │ ├── webpki v0.21.4 (*) │ └── webpki-roots v0.21.1 │ └── webpki v0.21.4 (*) ├── actix v0.12.0 │ ├── actix-rt v2.7.0 │ │ ├── actix-macros v0.2.3 (proc-macro) │ │ │ ├── quote v1.0.17 (*) │ │ │ └── syn v1.0.90 (*) │ │ ├── futures-core v0.3.21 │ │ └── tokio v1.17.0 │ │ ├── bytes v1.1.0 │ │ ├── libc v0.2.121 │ │ ├── memchr v2.4.1 │ │ ├── mio v0.8.2 │ │ │ ├── libc v0.2.121 │ │ │ └── log v0.4.16 (*) │ │ ├── once_cell v1.10.0 │ │ ├── parking_lot v0.12.0 │ │ │ ├── lock_api v0.4.6 │ │ │ │ └── scopeguard v1.1.0 │ │ │ └── parking_lot_core v0.9.1 │ │ │ ├── cfg-if v1.0.0 │ │ │ ├── libc v0.2.121 │ │ │ └── smallvec v1.8.0 │ │ ├── pin-project-lite v0.2.8 │ │ ├── signal-hook-registry v1.4.0 │ │ │ └── libc v0.2.121 │ │ └── socket2 v0.4.4 │ │ └── libc v0.2.121 │ ├── actix_derive v0.6.0 (proc-macro) │ │ ├── proc-macro2 v1.0.36 (*) │ │ ├── quote v1.0.17 (*) │ │ └── syn v1.0.90 (*) │ ├── bitflags v1.3.2 │ ├── bytes v1.1.0 │ ├── crossbeam-channel v0.5.4 │ │ ├── cfg-if v1.0.0 │ │ └── crossbeam-utils v0.8.8 │ │ ├── cfg-if v1.0.0 │ │ └── lazy_static v1.4.0 │ ├── futures-core v0.3.21 │ ├── futures-sink v0.3.21 │ ├── futures-task v0.3.21 │ ├── futures-util v0.3.21 │ │ ├── futures-channel v0.3.21 │ │ │ ├── futures-core v0.3.21 │ │ │ └── futures-sink v0.3.21 │ │ ├── futures-core v0.3.21 │ │ ├── futures-io v0.3.21 │ │ ├── futures-macro v0.3.21 (proc-macro) │ │ │ ├── proc-macro2 v1.0.36 (*) │ │ │ ├── quote v1.0.17 (*) │ │ │ └── syn v1.0.90 (*) │ │ ├── futures-sink v0.3.21 │ │ ├── futures-task v0.3.21 │ │ ├── memchr v2.4.1 │ │ ├── pin-project-lite v0.2.8 │ │ ├── pin-utils v0.1.0 │ │ └── slab v0.4.5 │ ├── log v0.4.16 (*) │ ├── once_cell v1.10.0 │ ├── parking_lot v0.11.2 │ │ ├── instant v0.1.12 │ │ │ └── cfg-if v1.0.0 │ │ ├── lock_api v0.4.6 (*) │ │ └── parking_lot_core v0.8.5 │ │ ├── cfg-if v1.0.0 │ │ ├── instant v0.1.12 (*) │ │ ├── libc v0.2.121 │ │ └── smallvec v1.8.0 │ ├── pin-project-lite v0.2.8 │ ├── smallvec v1.8.0 │ ├── tokio v1.17.0 (*) │ └── tokio-util v0.6.9 │ ├── bytes v1.1.0 │ ├── futures-core v0.3.21 │ ├── futures-sink v0.3.21 │ ├── log v0.4.16 (*) │ ├── pin-project-lite v0.2.8 │ └── tokio v1.17.0 (*) ├── actix-cors v0.6.1 │ ├── actix-utils v3.0.0 │ │ ├── local-waker v0.1.2 │ │ └── pin-project-lite v0.2.8 │ ├── actix-web v4.0.1 │ │ ├── actix-codec v0.5.0 │ │ │ ├── bitflags v1.3.2 │ │ │ ├── bytes v1.1.0 │ │ │ ├── futures-core v0.3.21 │ │ │ ├── futures-sink v0.3.21 │ │ │ ├── log v0.4.16 (*) │ │ │ ├── memchr v2.4.1 │ │ │ ├── pin-project-lite v0.2.8 │ │ │ ├── tokio v1.17.0 (*) │ │ │ └── tokio-util v0.7.1 │ │ │ ├── bytes v1.1.0 │ │ │ ├── futures-core v0.3.21 │ │ │ ├── futures-sink v0.3.21 │ │ │ ├── pin-project-lite v0.2.8 │ │ │ ├── tokio v1.17.0 (*) │ │ │ └── tracing v0.1.32 │ │ │ ├── cfg-if v1.0.0 │ │ │ ├── log v0.4.16 (*) │ │ │ ├── pin-project-lite v0.2.8 │ │ │ ├── tracing-attributes v0.1.20 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.36 (*) │ │ │ │ ├── quote v1.0.17 (*) │ │ │ │ └── syn v1.0.90 (*) │ │ │ └── tracing-core v0.1.23 │ │ │ └── lazy_static v1.4.0 │ │ ├── actix-http v3.0.4 │ │ │ ├── actix-codec v0.5.0 (*) │ │ │ ├── actix-rt v2.7.0 (*) │ │ │ ├── actix-service v2.0.2 │ │ │ │ ├── futures-core v0.3.21 │ │ │ │ ├── paste v1.0.7 (proc-macro) │ │ │ │ └── pin-project-lite v0.2.8 │ │ │ ├── actix-tls v3.0.3 │ │ │ │ ├── actix-codec v0.5.0 (*) │ │ │ │ ├── actix-rt v2.7.0 (*) │ │ │ │ ├── actix-service v2.0.2 (*) │ │ │ │ ├── actix-utils v3.0.0 (*) │ │ │ │ ├── futures-core v0.3.21 │ │ │ │ ├── http v0.2.6 │ │ │ │ │ ├── bytes v1.1.0 │ │ │ │ │ ├── fnv v1.0.7 │ │ │ │ │ └── itoa v1.0.1 │ │ │ │ ├── log v0.4.16 (*) │ │ │ │ ├── pin-project-lite v0.2.8 │ │ │ │ ├── tokio-rustls v0.23.3 │ │ │ │ │ ├── rustls v0.20.4 │ │ │ │ │ │ ├── log v0.4.16 (*) │ │ │ │ │ │ ├── ring v0.16.20 (*) │ │ │ │ │ │ ├── sct v0.7.0 │ │ │ │ │ │ │ ├── ring v0.16.20 (*) │ │ │ │ │ │ │ └── untrusted v0.7.1 │ │ │ │ │ │ └── webpki v0.22.0 │ │ │ │ │ │ ├── ring v0.16.20 (*) │ │ │ │ │ │ └── untrusted v0.7.1 │ │ │ │ │ ├── tokio v1.17.0 (*) │ │ │ │ │ └── webpki v0.22.0 (*) │ │ │ │ ├── tokio-util v0.7.1 (*) │ │ │ │ └── webpki-roots v0.22.2 │ │ │ │ └── webpki v0.22.0 (*) │ │ │ ├── actix-utils v3.0.0 (*) │ │ │ ├── ahash v0.7.6 │ │ │ │ ├── getrandom v0.2.6 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ └── libc v0.2.121 │ │ │ │ └── once_cell v1.10.0 │ │ │ │ [build-dependencies] │ │ │ │ └── version_check v0.9.4 │ │ │ ├── base64 v0.13.0 │ │ │ ├── bitflags v1.3.2 │ │ │ ├── brotli v3.3.3 │ │ │ │ ├── alloc-no-stdlib v2.0.3 │ │ │ │ ├── alloc-stdlib v0.2.1 │ │ │ │ │ └── alloc-no-stdlib v2.0.3 │ │ │ │ └── brotli-decompressor v2.3.2 │ │ │ │ ├── alloc-no-stdlib v2.0.3 │ │ │ │ └── alloc-stdlib v0.2.1 (*) │ │ │ ├── bytes v1.1.0 │ │ │ ├── bytestring v1.0.0 │ │ │ │ └── bytes v1.1.0 │ │ │ ├── derive_more v0.99.17 (proc-macro) │ │ │ │ ├── convert_case v0.4.0 │ │ │ │ ├── proc-macro2 v1.0.36 (*) │ │ │ │ ├── quote v1.0.17 (*) │ │ │ │ └── syn v1.0.90 (*) │ │ │ │ [build-dependencies] │ │ │ │ └── rustc_version v0.4.0 │ │ │ │ └── semver v1.0.7 │ │ │ ├── encoding_rs v0.8.30 │ │ │ │ └── cfg-if v1.0.0 │ │ │ ├── flate2 v1.0.22 │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ ├── crc32fast v1.3.2 │ │ │ │ │ └── cfg-if v1.0.0 │ │ │ │ ├── libc v0.2.121 │ │ │ │ └── miniz_oxide v0.4.4 │ │ │ │ └── adler v1.0.2 │ │ │ │ [build-dependencies] │ │ │ │ └── autocfg v1.1.0 │ │ │ ├── futures-core v0.3.21 │ │ │ ├── h2 v0.3.12 │ │ │ │ ├── bytes v1.1.0 │ │ │ │ ├── fnv v1.0.7 │ │ │ │ ├── futures-core v0.3.21 │ │ │ │ ├── futures-sink v0.3.21 │ │ │ │ ├── futures-util v0.3.21 (*) │ │ │ │ ├── http v0.2.6 (*) │ │ │ │ ├── indexmap v1.8.1 │ │ │ │ │ └── hashbrown v0.11.2 │ │ │ │ │ └── ahash v0.7.6 (*) │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── autocfg v1.1.0 │ │ │ │ ├── slab v0.4.5 │ │ │ │ ├── tokio v1.17.0 (*) │ │ │ │ ├── tokio-util v0.6.9 (*) │ │ │ │ └── tracing v0.1.32 (*) │ │ │ ├── http v0.2.6 (*) │ │ │ ├── httparse v1.6.0 │ │ │ ├── httpdate v1.0.2 │ │ │ ├── itoa v1.0.1 │ │ │ ├── language-tags v0.3.2 │ │ │ ├── local-channel v0.1.2 │ │ │ │ ├── futures-core v0.3.21 │ │ │ │ ├── futures-sink v0.3.21 │ │ │ │ ├── futures-util v0.3.21 (*) │ │ │ │ └── local-waker v0.1.2 │ │ │ ├── log v0.4.16 (*) │ │ │ ├── mime v0.3.16 │ │ │ ├── percent-encoding v2.1.0 │ │ │ ├── pin-project-lite v0.2.8 │ │ │ ├── rand v0.8.5 │ │ │ │ ├── libc v0.2.121 │ │ │ │ ├── rand_chacha v0.3.1 │ │ │ │ │ ├── ppv-lite86 v0.2.16 │ │ │ │ │ └── rand_core v0.6.3 │ │ │ │ │ └── getrandom v0.2.6 (*) │ │ │ │ └── rand_core v0.6.3 (*) │ │ │ ├── sha-1 v0.10.0 │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ ├── cpufeatures v0.2.2 │ │ │ │ │ └── libc v0.2.121 │ │ │ │ └── digest v0.10.3 │ │ │ │ ├── block-buffer v0.10.2 │ │ │ │ │ └── generic-array v0.14.5 │ │ │ │ │ └── typenum v1.15.0 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── version_check v0.9.4 │ │ │ │ └── crypto-common v0.1.3 │ │ │ │ ├── generic-array v0.14.5 (*) │ │ │ │ └── typenum v1.15.0 │ │ │ ├── smallvec v1.8.0 │ │ │ └── zstd v0.10.0+zstd.1.5.2 │ │ │ └── zstd-safe v4.1.4+zstd.1.5.2 │ │ │ ├── libc v0.2.121 │ │ │ └── zstd-sys v1.6.3+zstd.1.5.2 │ │ │ └── libc v0.2.121 │ │ │ [build-dependencies] │ │ │ └── cc v1.0.73 (*) │ │ ├── actix-macros v0.2.3 (proc-macro) (*) │ │ ├── actix-router v0.5.0 │ │ │ ├── bytestring v1.0.0 (*) │ │ │ ├── firestorm v0.5.0 │ │ │ ├── http v0.2.6 (*) │ │ │ ├── log v0.4.16 (*) │ │ │ ├── regex v1.5.5 │ │ │ │ ├── aho-corasick v0.7.18 │ │ │ │ │ └── memchr v2.4.1 │ │ │ │ ├── memchr v2.4.1 │ │ │ │ └── regex-syntax v0.6.25 │ │ │ └── serde v1.0.136 (*) │ │ ├── actix-rt v2.7.0 (*) │ │ ├── actix-server v2.1.1 │ │ │ ├── actix-rt v2.7.0 (*) │ │ │ ├── actix-service v2.0.2 (*) │ │ │ ├── actix-utils v3.0.0 (*) │ │ │ ├── futures-core v0.3.21 │ │ │ ├── futures-util v0.3.21 (*) │ │ │ ├── mio v0.8.2 (*) │ │ │ ├── num_cpus v1.13.1 │ │ │ │ └── libc v0.2.121 │ │ │ ├── socket2 v0.4.4 (*) │ │ │ ├── tokio v1.17.0 (*) │ │ │ └── tracing v0.1.32 (*) │ │ ├── actix-service v2.0.2 (*) │ │ ├── actix-tls v3.0.3 (*) │ │ ├── actix-utils v3.0.0 (*) │ │ ├── actix-web-codegen v4.0.0 (proc-macro) │ │ │ ├── actix-router v0.5.0 (*) │ │ │ ├── proc-macro2 v1.0.36 (*) │ │ │ ├── quote v1.0.17 (*) │ │ │ └── syn v1.0.90 (*) │ │ ├── ahash v0.7.6 (*) │ │ ├── bytes v1.1.0 │ │ ├── bytestring v1.0.0 (*) │ │ ├── cfg-if v1.0.0 │ │ ├── cookie v0.16.0 │ │ │ ├── percent-encoding v2.1.0 │ │ │ └── time v0.3.9 │ │ │ ├── itoa v1.0.1 │ │ │ ├── libc v0.2.121 │ │ │ ├── num_threads v0.1.5 │ │ │ │ └── libc v0.2.121 │ │ │ └── time-macros v0.2.4 (proc-macro) │ │ │ [build-dependencies] │ │ │ └── version_check v0.9.4 │ │ ├── derive_more v0.99.17 (proc-macro) (*) │ │ ├── encoding_rs v0.8.30 (*) │ │ ├── futures-core v0.3.21 │ │ ├── futures-util v0.3.21 (*) │ │ ├── itoa v1.0.1 │ │ ├── language-tags v0.3.2 │ │ ├── log v0.4.16 (*) │ │ ├── mime v0.3.16 │ │ ├── once_cell v1.10.0 │ │ ├── pin-project-lite v0.2.8 │ │ ├── regex v1.5.5 (*) │ │ ├── serde v1.0.136 (*) │ │ ├── serde_json v1.0.79 (*) │ │ ├── serde_urlencoded v0.7.1 │ │ │ ├── form_urlencoded v1.0.1 (*) │ │ │ ├── itoa v1.0.1 │ │ │ ├── ryu v1.0.9 │ │ │ └── serde v1.0.136 (*) │ │ ├── smallvec v1.8.0 │ │ ├── socket2 v0.4.4 (*) │ │ ├── time v0.3.9 (*) │ │ └── url v2.2.2 (*) │ ├── derive_more v0.99.17 (proc-macro) (*) │ ├── futures-util v0.3.21 (*) │ ├── log v0.4.16 (*) │ ├── once_cell v1.10.0 │ └── smallvec v1.8.0 ├── actix-files v0.6.0 │ ├── actix-http v3.0.4 (*) │ ├── actix-service v2.0.2 (*) │ ├── actix-utils v3.0.0 (*) │ ├── actix-web v4.0.1 (*) │ ├── askama_escape v0.10.3 │ ├── bitflags v1.3.2 │ ├── bytes v1.1.0 │ ├── derive_more v0.99.17 (proc-macro) (*) │ ├── futures-core v0.3.21 │ ├── http-range v0.1.5 │ ├── log v0.4.16 (*) │ ├── mime v0.3.16 │ ├── mime_guess v2.0.4 │ │ ├── mime v0.3.16 │ │ └── unicase v2.6.0 │ │ [build-dependencies] │ │ └── version_check v0.9.4 │ │ [build-dependencies] │ │ └── unicase v2.6.0 (*) │ ├── percent-encoding v2.1.0 │ └── pin-project-lite v0.2.8 ├── actix-multipart v0.4.0 │ ├── actix-utils v3.0.0 (*) │ ├── actix-web v4.0.1 (*) │ ├── bytes v1.1.0 │ ├── derive_more v0.99.17 (proc-macro) (*) │ ├── futures-core v0.3.21 │ ├── httparse v1.6.0 │ ├── local-waker v0.1.2 │ ├── log v0.4.16 (*) │ ├── mime v0.3.16 │ └── twoway v0.2.2 │ ├── memchr v2.4.1 │ └── unchecked-index v0.2.2 ├── actix-web v4.0.1 (*) ├── actix-web-actors v4.1.0 │ ├── actix v0.13.0 │ │ ├── actix-rt v2.7.0 (*) │ │ ├── bitflags v1.3.2 │ │ ├── bytes v1.1.0 │ │ ├── crossbeam-channel v0.5.4 (*) │ │ ├── futures-core v0.3.21 │ │ ├── futures-sink v0.3.21 │ │ ├── futures-task v0.3.21 │ │ ├── futures-util v0.3.21 (*) │ │ ├── log v0.4.16 (*) │ │ ├── once_cell v1.10.0 │ │ ├── parking_lot v0.12.0 (*) │ │ ├── pin-project-lite v0.2.8 │ │ ├── smallvec v1.8.0 │ │ ├── tokio v1.17.0 (*) │ │ └── tokio-util v0.7.1 (*) │ ├── actix-codec v0.5.0 (*) │ ├── actix-http v3.0.4 (*) │ ├── actix-web v4.0.1 (*) │ ├── bytes v1.1.0 │ ├── bytestring v1.0.0 (*) │ ├── futures-core v0.3.21 │ ├── pin-project-lite v0.2.8 │ └── tokio v1.17.0 (*) ├── actix-web-static-files v4.0.0 │ ├── actix-web v4.0.1 (*) │ ├── derive_more v0.99.17 (proc-macro) (*) │ ├── futures-util v0.3.21 (*) │ └── static-files v0.2.3 │ ├── change-detection v1.2.0 │ │ ├── path-matchers v1.0.2 │ │ │ └── glob v0.3.0 │ │ └── path-slash v0.1.4 │ ├── mime_guess v2.0.4 (*) │ └── path-slash v0.1.4 │ [build-dependencies] │ ├── change-detection v1.2.0 (*) │ ├── mime_guess v2.0.4 (*) │ └── path-slash v0.1.4 │ [build-dependencies] │ └── static-files v0.2.3 (*) ├── async-std v1.11.0 │ ├── async-channel v1.6.1 │ │ ├── concurrent-queue v1.2.2 │ │ │ └── cache-padded v1.2.0 │ │ ├── event-listener v2.5.2 │ │ └── futures-core v0.3.21 │ ├── async-global-executor v2.0.3 │ │ ├── async-channel v1.6.1 (*) │ │ ├── async-executor v1.4.1 │ │ │ ├── async-task v4.2.0 │ │ │ ├── concurrent-queue v1.2.2 (*) │ │ │ ├── fastrand v1.7.0 │ │ │ ├── futures-lite v1.12.0 │ │ │ │ ├── fastrand v1.7.0 │ │ │ │ ├── futures-core v0.3.21 │ │ │ │ ├── futures-io v0.3.21 │ │ │ │ ├── memchr v2.4.1 │ │ │ │ ├── parking v2.0.0 │ │ │ │ ├── pin-project-lite v0.2.8 │ │ │ │ └── waker-fn v1.1.0 │ │ │ ├── once_cell v1.10.0 │ │ │ └── slab v0.4.5 │ │ ├── async-io v1.6.0 │ │ │ ├── concurrent-queue v1.2.2 (*) │ │ │ ├── futures-lite v1.12.0 (*) │ │ │ ├── libc v0.2.121 │ │ │ ├── log v0.4.16 (*) │ │ │ ├── once_cell v1.10.0 │ │ │ ├── parking v2.0.0 │ │ │ ├── polling v2.2.0 │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ ├── libc v0.2.121 │ │ │ │ └── log v0.4.16 (*) │ │ │ ├── slab v0.4.5 │ │ │ ├── socket2 v0.4.4 (*) │ │ │ └── waker-fn v1.1.0 │ │ ├── async-mutex v1.4.0 │ │ │ └── event-listener v2.5.2 │ │ ├── blocking v1.2.0 │ │ │ ├── async-channel v1.6.1 (*) │ │ │ ├── async-task v4.2.0 │ │ │ ├── atomic-waker v1.0.0 │ │ │ ├── fastrand v1.7.0 │ │ │ ├── futures-lite v1.12.0 (*) │ │ │ └── once_cell v1.10.0 │ │ ├── futures-lite v1.12.0 (*) │ │ ├── num_cpus v1.13.1 (*) │ │ └── once_cell v1.10.0 │ ├── async-io v1.6.0 (*) │ ├── async-lock v2.5.0 │ │ └── event-listener v2.5.2 │ ├── crossbeam-utils v0.8.8 (*) │ ├── futures-core v0.3.21 │ ├── futures-io v0.3.21 │ ├── futures-lite v1.12.0 (*) │ ├── kv-log-macro v1.0.7 │ │ └── log v0.4.16 (*) │ ├── log v0.4.16 (*) │ ├── memchr v2.4.1 │ ├── num_cpus v1.13.1 (*) │ ├── once_cell v1.10.0 │ ├── pin-project-lite v0.2.8 │ ├── pin-utils v0.1.0 │ └── slab v0.4.5 ├── atomic_lib v0.31.1 (/Users/joep/dev/github/joepio/atomic-data-rust/lib) │ ├── base64 v0.13.0 │ ├── bincode v1.3.3 │ │ └── serde v1.0.136 (*) │ ├── dirs v4.0.0 │ │ └── dirs-sys v0.3.7 │ │ └── libc v0.2.121 │ ├── rand v0.8.5 (*) │ ├── regex v1.5.5 (*) │ ├── ring v0.16.20 (*) │ ├── rio_api v0.6.2 │ ├── rio_turtle v0.6.2 │ │ ├── oxilangtag v0.1.3 │ │ ├── oxiri v0.2.2 │ │ └── rio_api v0.6.2 │ ├── serde v1.0.136 (*) │ ├── serde_json v1.0.79 (*) │ ├── sled v0.34.7 │ │ ├── crc32fast v1.3.2 (*) │ │ ├── crossbeam-epoch v0.9.8 │ │ │ ├── cfg-if v1.0.0 │ │ │ ├── crossbeam-utils v0.8.8 (*) │ │ │ ├── lazy_static v1.4.0 │ │ │ ├── memoffset v0.6.5 │ │ │ │ [build-dependencies] │ │ │ │ └── autocfg v1.1.0 │ │ │ └── scopeguard v1.1.0 │ │ │ [build-dependencies] │ │ │ └── autocfg v1.1.0 │ │ ├── crossbeam-utils v0.8.8 (*) │ │ ├── fs2 v0.4.3 │ │ │ └── libc v0.2.121 │ │ ├── fxhash v0.2.1 │ │ │ └── byteorder v1.4.3 │ │ ├── libc v0.2.121 │ │ ├── log v0.4.16 (*) │ │ └── parking_lot v0.11.2 (*) │ ├── toml v0.5.8 │ │ └── serde v1.0.136 (*) │ ├── tracing v0.1.32 (*) │ ├── ureq v1.5.5 (*) │ ├── url v2.2.2 (*) │ └── urlencoding v2.1.0 ├── awc v3.0.0 │ ├── actix-codec v0.5.0 (*) │ ├── actix-http v3.0.4 (*) │ ├── actix-rt v2.7.0 (*) │ ├── actix-service v2.0.2 (*) │ ├── actix-tls v3.0.3 (*) │ ├── actix-utils v3.0.0 (*) │ ├── ahash v0.7.6 (*) │ ├── base64 v0.13.0 │ ├── bytes v1.1.0 │ ├── cfg-if v1.0.0 │ ├── cookie v0.16.0 (*) │ ├── derive_more v0.99.17 (proc-macro) (*) │ ├── futures-core v0.3.21 │ ├── futures-util v0.3.21 (*) │ ├── h2 v0.3.12 (*) │ ├── http v0.2.6 (*) │ ├── itoa v1.0.1 │ ├── log v0.4.16 (*) │ ├── mime v0.3.16 │ ├── percent-encoding v2.1.0 │ ├── pin-project-lite v0.2.8 │ ├── rand v0.8.5 (*) │ ├── serde v1.0.136 (*) │ ├── serde_json v1.0.79 (*) │ ├── serde_urlencoded v0.7.1 (*) │ └── tokio v1.17.0 (*) ├── chrono v0.4.19 │ ├── libc v0.2.121 │ ├── num-integer v0.1.44 │ │ └── num-traits v0.2.14 │ │ [build-dependencies] │ │ └── autocfg v1.1.0 │ │ [build-dependencies] │ │ └── autocfg v1.1.0 │ ├── num-traits v0.2.14 (*) │ └── time v0.1.44 (*) ├── clap v3.1.6 │ ├── atty v0.2.14 │ │ └── libc v0.2.121 │ ├── bitflags v1.3.2 │ ├── clap_derive v3.1.4 (proc-macro) │ │ ├── heck v0.4.0 │ │ ├── proc-macro-error v1.0.4 │ │ │ ├── proc-macro-error-attr v1.0.4 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.36 (*) │ │ │ │ └── quote v1.0.17 (*) │ │ │ │ [build-dependencies] │ │ │ │ └── version_check v0.9.4 │ │ │ ├── proc-macro2 v1.0.36 (*) │ │ │ ├── quote v1.0.17 (*) │ │ │ └── syn v1.0.90 (*) │ │ │ [build-dependencies] │ │ │ └── version_check v0.9.4 │ │ ├── proc-macro2 v1.0.36 (*) │ │ ├── quote v1.0.17 (*) │ │ └── syn v1.0.90 (*) │ ├── indexmap v1.8.1 (*) │ ├── lazy_static v1.4.0 │ ├── os_str_bytes v6.0.0 │ │ └── memchr v2.4.1 │ ├── strsim v0.10.0 │ ├── termcolor v1.1.3 │ └── textwrap v0.15.0 ├── dirs v3.0.2 │ └── dirs-sys v0.3.7 (*) ├── dotenv v0.15.0 ├── futures v0.3.21 │ ├── futures-channel v0.3.21 (*) │ ├── futures-core v0.3.21 │ ├── futures-executor v0.3.21 │ │ ├── futures-core v0.3.21 │ │ ├── futures-task v0.3.21 │ │ ├── futures-util v0.3.21 (*) │ │ └── num_cpus v1.13.1 (*) │ ├── futures-io v0.3.21 │ ├── futures-sink v0.3.21 │ ├── futures-task v0.3.21 │ └── futures-util v0.3.21 (*) ├── promptly v0.3.0 │ └── rustyline v6.3.0 │ ├── cfg-if v0.1.10 │ ├── dirs-next v1.0.2 │ │ ├── cfg-if v1.0.0 │ │ └── dirs-sys-next v0.1.2 │ │ └── libc v0.2.121 │ ├── libc v0.2.121 │ ├── log v0.4.16 (*) │ ├── memchr v2.4.1 │ ├── nix v0.18.0 │ │ ├── bitflags v1.3.2 │ │ ├── cfg-if v0.1.10 │ │ └── libc v0.2.121 │ ├── unicode-segmentation v1.9.0 │ ├── unicode-width v0.1.9 │ └── utf8parse v0.2.0 ├── regex v1.5.5 (*) ├── rio_api v0.6.2 ├── rio_turtle v0.6.2 (*) ├── rustls v0.20.4 (*) ├── rustls-pemfile v0.2.1 │ └── base64 v0.13.0 ├── sanitize-filename v0.3.0 │ ├── lazy_static v1.4.0 │ └── regex v1.5.5 (*) ├── serde v1.0.136 (*) ├── serde_json v1.0.79 (*) ├── static-files v0.2.3 (*) ├── sysinfo v0.20.5 │ ├── cfg-if v1.0.0 │ ├── core-foundation-sys v0.8.3 │ ├── libc v0.2.121 │ ├── once_cell v1.10.0 │ └── rayon v1.5.1 │ ├── crossbeam-deque v0.8.1 │ │ ├── cfg-if v1.0.0 │ │ ├── crossbeam-epoch v0.9.8 (*) │ │ └── crossbeam-utils v0.8.8 (*) │ ├── either v1.6.1 │ └── rayon-core v1.9.1 │ ├── crossbeam-channel v0.5.4 (*) │ ├── crossbeam-deque v0.8.1 (*) │ ├── crossbeam-utils v0.8.8 (*) │ ├── lazy_static v1.4.0 │ └── num_cpus v1.13.1 (*) │ [build-dependencies] │ └── autocfg v1.1.0 ├── tantivy v0.16.1 │ ├── base64 v0.13.0 │ ├── bitpacking v0.8.4 │ │ └── crunchy v0.2.2 │ ├── byteorder v1.4.3 │ ├── census v0.4.0 │ ├── chrono v0.4.19 (*) │ ├── crc32fast v1.3.2 (*) │ ├── crossbeam v0.8.1 │ │ ├── cfg-if v1.0.0 │ │ ├── crossbeam-channel v0.5.4 (*) │ │ ├── crossbeam-deque v0.8.1 (*) │ │ ├── crossbeam-epoch v0.9.8 (*) │ │ ├── crossbeam-queue v0.3.5 │ │ │ ├── cfg-if v1.0.0 │ │ │ └── crossbeam-utils v0.8.8 (*) │ │ └── crossbeam-utils v0.8.8 (*) │ ├── downcast-rs v1.2.0 │ ├── fail v0.4.0 │ │ ├── lazy_static v1.4.0 │ │ ├── log v0.4.16 (*) │ │ └── rand v0.7.3 │ │ ├── getrandom v0.1.16 │ │ │ ├── cfg-if v1.0.0 │ │ │ └── libc v0.2.121 │ │ ├── libc v0.2.121 │ │ ├── rand_chacha v0.2.2 │ │ │ ├── ppv-lite86 v0.2.16 │ │ │ └── rand_core v0.5.1 │ │ │ └── getrandom v0.1.16 (*) │ │ └── rand_core v0.5.1 (*) │ ├── fastdivide v0.3.0 │ ├── fastfield_codecs v0.1.0 │ │ ├── tantivy-bitpacker v0.1.1 │ │ └── tantivy-common v0.1.0 │ │ └── byteorder v1.4.3 │ ├── fnv v1.0.7 │ ├── fs2 v0.4.3 (*) │ ├── futures v0.3.21 (*) │ ├── htmlescape v0.3.1 │ ├── itertools v0.10.3 │ │ └── either v1.6.1 │ ├── levenshtein_automata v0.2.1 │ ├── log v0.4.16 (*) │ ├── lru v0.6.6 │ │ └── hashbrown v0.11.2 (*) │ ├── lz4_flex v0.8.2 │ │ └── twox-hash v1.6.2 │ │ ├── cfg-if v1.0.0 │ │ └── static_assertions v1.1.0 │ ├── measure_time v0.7.0 │ │ └── log v0.4.16 (*) │ ├── memmap2 v0.3.1 │ │ └── libc v0.2.121 │ ├── murmurhash32 v0.2.0 │ │ └── byteorder v1.4.3 │ ├── num_cpus v1.13.1 (*) │ ├── once_cell v1.10.0 │ ├── ownedbytes v0.1.0 │ │ └── stable_deref_trait v1.2.0 │ ├── rayon v1.5.1 (*) │ ├── regex v1.5.5 (*) │ ├── rust-stemmers v1.2.0 │ │ ├── serde v1.0.136 (*) │ │ └── serde_derive v1.0.136 (proc-macro) (*) │ ├── serde v1.0.136 (*) │ ├── serde_json v1.0.79 (*) │ ├── smallvec v1.8.0 │ ├── stable_deref_trait v1.2.0 │ ├── tantivy-bitpacker v0.1.1 │ ├── tantivy-common v0.1.0 (*) │ ├── tantivy-fst v0.3.0 │ │ ├── byteorder v1.4.3 │ │ ├── regex-syntax v0.4.2 │ │ └── utf8-ranges v1.0.4 │ ├── tantivy-query-grammar v0.15.0 │ │ └── combine v4.6.3 │ │ └── memchr v2.4.1 │ ├── tempfile v3.3.0 │ │ ├── cfg-if v1.0.0 │ │ ├── fastrand v1.7.0 │ │ ├── libc v0.2.121 │ │ └── remove_dir_all v0.5.3 │ ├── thiserror v1.0.30 │ │ └── thiserror-impl v1.0.30 (proc-macro) │ │ ├── proc-macro2 v1.0.36 (*) │ │ ├── quote v1.0.17 (*) │ │ └── syn v1.0.90 (*) │ └── uuid v0.8.2 │ ├── getrandom v0.2.6 (*) │ └── serde v1.0.136 (*) ├── tokio v1.17.0 (*) ├── tracing v0.1.32 (*) ├── tracing-actix-web v0.5.1 │ ├── actix-web v4.0.1 (*) │ ├── pin-project v1.0.10 │ │ └── pin-project-internal v1.0.10 (proc-macro) │ │ ├── proc-macro2 v1.0.36 (*) │ │ ├── quote v1.0.17 (*) │ │ └── syn v1.0.90 (*) │ ├── tracing v0.1.32 (*) │ ├── tracing-futures v0.2.5 │ │ ├── pin-project v1.0.10 (*) │ │ └── tracing v0.1.32 (*) │ └── uuid v0.8.2 (*) ├── tracing-chrome v0.4.0 │ ├── json v0.12.4 │ ├── tracing v0.1.32 (*) │ └── tracing-subscriber v0.3.9 │ ├── ansi_term v0.12.1 │ ├── lazy_static v1.4.0 │ ├── matchers v0.1.0 │ │ └── regex-automata v0.1.10 │ │ └── regex-syntax v0.6.25 │ ├── regex v1.5.5 (*) │ ├── sharded-slab v0.1.4 │ │ └── lazy_static v1.4.0 │ ├── smallvec v1.8.0 │ ├── thread_local v1.1.4 │ │ └── once_cell v1.10.0 │ ├── tracing v0.1.32 (*) │ ├── tracing-core v0.1.23 (*) │ └── tracing-log v0.1.2 │ ├── lazy_static v1.4.0 │ ├── log v0.4.16 (*) │ └── tracing-core v0.1.23 (*) ├── tracing-log v0.1.2 (*) ├── tracing-subscriber v0.3.9 (*) └── urlencoding v2.1.0 [build-dependencies] └── static-files v0.2.3 (*) [dev-dependencies] └── actix-rt v2.7.0 (*) ```
robjtede commented 2 years ago

I think the version range in actix-web-actors doesn't work how I expected. I expanded the actix dependency range to include both 0.12 and 0.13 but it seems like cargo doesn't select the right version all the time. I'll have a look into it and may need to yank it.