You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug juniper_axum is transitively bringing in the mio dependency, making it fail to compile in projects targeting wasm32-unknown-unknown.
The dependency mio is being brought here via: juniper_axum→axum→axum/tokio→tokio/net→mio. By disabling the default features of axum, we can disable its tokio feature.
This patch seems to fix the compilation issue:
# juniper_axum/Cargo.toml
[dependencies]
-axum = "0.7"+axum = { version = "0.7", default-features = false, features = ["json", "query"] }
error[E0432]: unresolved import crate::sys::tcp
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:17:17
|
17 | use crate::sys::tcp::{bind, listen, new_for_addr};
| ^^^ could not find tcp in sys
error[E0432]: unresolved import crate::sys::tcp
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/stream.rs:15:17
|
15 | use crate::sys::tcp::{connect, new_for_addr};
| ^^^ could not find tcp in sys
error[E0433]: failed to resolve: could not find Selector in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/poll.rs:321:18
|
321 | sys::Selector::new().map(|selector| Poll {
| ^^^^^^^^ could not find Selector in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:24:14
|
24 | sys::event::token(&self.inner)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:38:14
|
38 | sys::event::is_readable(&self.inner)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:43:14
|
43 | sys::event::is_writable(&self.inner)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:68:14
|
68 | sys::event::is_error(&self.inner)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:99:14
|
99 | sys::event::is_read_closed(&self.inner)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:129:14
|
129 | sys::event::is_write_closed(&self.inner)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:151:14
|
151 | sys::event::is_priority(&self.inner)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:173:14
|
173 | sys::event::is_aio(&self.inner)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:183:14
|
183 | sys::event::is_lio(&self.inner)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find event in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:221:26
|
221 | sys::event::debug_details(f, self.0)
| ^^^^^ could not find event in sys
error[E0433]: failed to resolve: could not find tcp in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:105:18
|
105 | sys::tcp::accept(inner).map(|(stream, addr)| (TcpStream::from_std(stream), addr))
| ^^^ could not find tcp in sys
error[E0433]: failed to resolve: could not find udp in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/udp.rs:124:14
|
124 | sys::udp::bind(addr).map(UdpSocket::from_std)
| ^^^ could not find udp in sys
error[E0433]: failed to resolve: could not find udp in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/udp.rs:546:14
|
546 | sys::udp::only_v6(&self.inner)
| ^^^ could not find udp in sys
error[E0412]: cannot find type Selector in module sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/poll.rs:272:20
|
272 | selector: sys::Selector,
| ^^^^^^^^ not found in sys
error[E0412]: cannot find type Selector in module sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/poll.rs:728:44
|
728 | pub(crate) fn selector(&self) -> &sys::Selector {
| ^^^^^^^^ not found in sys
error[E0412]: cannot find type Waker in module sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/waker.rs:79:17
|
79 | inner: sys::Waker,
| ^^^^^ not found in sys
|
help: consider importing one of these items
|
1 + use core::task::Waker;
|
1 + use crate::Waker;
|
1 + use std::task::Waker;
|
help: if you import Waker, refer to it directly
|
79 - inner: sys::Waker,
79 + inner: Waker,
|
error[E0433]: failed to resolve: could not find Waker in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/waker.rs:87:14
|
87 | sys::Waker::new(registry.selector(), token).map(|inner| Waker { inner })
| ^^^^^ could not find Waker in sys
|
help: consider importing one of these items
|
1 + use core::task::Waker;
|
1 + use crate::Waker;
|
1 + use std::task::Waker;
|
help: if you import Waker, refer to it directly
|
87 - sys::Waker::new(registry.selector(), token).map(|inner| Waker { inner })
87 + Waker::new(registry.selector(), token).map(|inner| Waker { inner })
|
error[E0412]: cannot find type Event in module sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:18:17
|
18 | inner: sys::Event,
| ^^^^^ not found in sys
|
help: consider importing this struct through its public re-export
|
1 + use crate::event::Event;
|
help: if you import Event, refer to it directly
|
18 - inner: sys::Event,
18 + inner: Event,
|
error[E0412]: cannot find type Event in module sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:187:55
|
187 | pub(crate) fn from_sys_event_ref(sys_event: &sys::Event) -> &Event {
| ^^^^^ not found in sys
|
help: consider importing this struct through its public re-export
|
1 + use crate::event::Event;
|
help: if you import Event, refer to it directly
|
187 - pub(crate) fn from_sys_event_ref(sys_event: &sys::Event) -> &Event {
187 + pub(crate) fn from_sys_event_ref(sys_event: &Event) -> &Event {
|
error[E0412]: cannot find type Event in module sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:191:41
|
191 | &*(sys_event as *const sys::Event as const Event)
| ^^^^^ not found in sys
|
help: consider importing this struct through its public re-export
|
1 + use crate::event::Event;
|
help: if you import Event, refer to it directly
|
191 - &(sys_event as *const sys::Event as const Event)
191 + &(sys_event as *const Event as *const Event)
|
error[E0412]: cannot find type Event in module sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/event.rs:217:46
|
217 | struct EventDetails<'a>(&'a sys::Event);
| ^^^^^ not found in sys
|
help: consider importing this struct through its public re-export
|
1 + use crate::event::Event;
|
help: if you import Event, refer to it directly
|
217 - struct EventDetails<'a>(&'a sys::Event);
217 + struct EventDetails<'a>(&'a Event);
|
error[E0412]: cannot find type Events in module sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/events.rs:43:17
|
43 | inner: sys::Events,
| ^^^^^^ not found in sys
|
help: consider importing this struct through its public re-export
|
1 + use crate::Events;
|
help: if you import Events, refer to it directly
|
43 - inner: sys::Events,
43 + inner: Events,
|
error[E0433]: failed to resolve: could not find Events in sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/events.rs:94:25
|
94 | inner: sys::Events::with_capacity(capacity),
| ^^^^^^ could not find Events in sys
|
help: consider importing this struct through its public re-export
|
1 + use crate::Events;
|
help: if you import Events, refer to it directly
|
94 - inner: sys::Events::with_capacity(capacity),
94 + inner: Events::with_capacity(capacity),
|
error[E0412]: cannot find type Events in module sys
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/events.rs:189:47
|
189 | pub(crate) fn sys(&mut self) -> &mut sys::Events {
| ^^^^^^ not found in sys
|
help: consider importing this struct through its public re-export
|
1 + use crate::Events;
|
help: if you import Events, refer to it directly
|
189 - pub(crate) fn sys(&mut self) -> &mut sys::Events {
189 + pub(crate) fn sys(&mut self) -> &mut Events {
|
error[E0425]: cannot find value listener in this scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:76:24
|
76 | set_reuseaddr(&listener.inner, true)?;
| ^^^^^^^^ not found in this scope
error[E0425]: cannot find value listener in this scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:78:15
|
78 | bind(&listener.inner, addr)?;
| ^^^^^^^^ not found in this scope
error[E0425]: cannot find value listener in this scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:79:17
|
79 | listen(&listener.inner, 1024)?;
| ^^^^^^^^ not found in this scope
error[E0425]: cannot find value listener in this scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:80:12
|
80 | Ok(listener)
| ^^^^^^^^ not found in this scope
error[E0425]: cannot find value stream in this scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/stream.rs:95:18
|
95 | connect(&stream.inner, addr)?;
| ^^^^^^ not found in this scope
error[E0425]: cannot find value stream in this scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/stream.rs:96:12
|
96 | Ok(stream)
| ^^^^^^ not found in this scope
error[E0425]: cannot find function set_reuseaddr in this scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:76:9
|
76 | set_reuseaddr(&listener.inner, true)?;
| ^^^^^^^^^^^^^ not found in this scope
error[E0599]: no method named register found for struct IoSource<std::net::TcpListener> in the current scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:148:20
|
148 | self.inner.register(registry, token, interests)
| ^^^^^^^^ method not found in IoSource<TcpListener>
|
::: /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/io_source.rs:37:1
|
37 | pub struct IoSource {
| ---------------------- method register not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
note: Source defines an item register, perhaps you need to implement it
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/source.rs:75:1
|
75 | pub trait Source {
| ^^^^^^^^^^^^^^^^
error[E0599]: no method named reregister found for struct IoSource<std::net::TcpListener> in the current scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:157:20
|
157 | self.inner.reregister(registry, token, interests)
| ^^^^^^^^^^ method not found in IoSource<TcpListener>
|
::: /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/io_source.rs:37:1
|
37 | pub struct IoSource {
| ---------------------- method reregister not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
note: Source defines an item reregister, perhaps you need to implement it
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/source.rs:75:1
|
75 | pub trait Source {
| ^^^^^^^^^^^^^^^^
error[E0599]: no method named deregister found for struct IoSource<std::net::TcpListener> in the current scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/listener.rs:161:20
|
161 | self.inner.deregister(registry)
| ^^^^^^^^^^ method not found in IoSource<TcpListener>
|
::: /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/io_source.rs:37:1
|
37 | pub struct IoSource {
| ---------------------- method deregister not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
note: Source defines an item deregister, perhaps you need to implement it
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/source.rs:75:1
|
75 | pub trait Source {
| ^^^^^^^^^^^^^^^^
error[E0599]: no method named register found for struct IoSource<std::net::TcpStream> in the current scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/stream.rs:330:20
|
330 | self.inner.register(registry, token, interests)
| ^^^^^^^^ method not found in IoSource<TcpStream>
|
::: /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/io_source.rs:37:1
|
37 | pub struct IoSource {
| ---------------------- method register not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
note: Source defines an item register, perhaps you need to implement it
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/source.rs:75:1
|
75 | pub trait Source {
| ^^^^^^^^^^^^^^^^
error[E0599]: no method named reregister found for struct IoSource<std::net::TcpStream> in the current scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/stream.rs:339:20
|
339 | self.inner.reregister(registry, token, interests)
| ^^^^^^^^^^ method not found in IoSource<TcpStream>
|
::: /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/io_source.rs:37:1
|
37 | pub struct IoSource {
| ---------------------- method reregister not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
note: Source defines an item reregister, perhaps you need to implement it
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/source.rs:75:1
|
75 | pub trait Source {
| ^^^^^^^^^^^^^^^^
error[E0599]: no method named deregister found for struct IoSource<std::net::TcpStream> in the current scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/tcp/stream.rs:343:20
|
343 | self.inner.deregister(registry)
| ^^^^^^^^^^ method not found in IoSource<TcpStream>
|
::: /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/io_source.rs:37:1
|
37 | pub struct IoSource {
| ---------------------- method deregister not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
note: Source defines an item deregister, perhaps you need to implement it
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/source.rs:75:1
|
75 | pub trait Source {
| ^^^^^^^^^^^^^^^^
error[E0599]: no method named register found for struct IoSource<std::net::UdpSocket> in the current scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/udp.rs:624:20
|
624 | self.inner.register(registry, token, interests)
| ^^^^^^^^ method not found in IoSource<UdpSocket>
|
::: /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/io_source.rs:37:1
|
37 | pub struct IoSource {
| ---------------------- method register not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
note: Source defines an item register, perhaps you need to implement it
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/source.rs:75:1
|
75 | pub trait Source {
| ^^^^^^^^^^^^^^^^
error[E0599]: no method named reregister found for struct IoSource<std::net::UdpSocket> in the current scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/udp.rs:633:20
|
633 | self.inner.reregister(registry, token, interests)
| ^^^^^^^^^^ method not found in IoSource<UdpSocket>
|
::: /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/io_source.rs:37:1
|
37 | pub struct IoSource {
| ---------------------- method reregister not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
note: Source defines an item reregister, perhaps you need to implement it
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/source.rs:75:1
|
75 | pub trait Source {
| ^^^^^^^^^^^^^^^^
error[E0599]: no method named deregister found for struct IoSource<std::net::UdpSocket> in the current scope
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/net/udp.rs:637:20
|
637 | self.inner.deregister(registry)
| ^^^^^^^^^^ method not found in IoSource<UdpSocket>
|
::: /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/io_source.rs:37:1
|
37 | pub struct IoSource {
| ---------------------- method deregister not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
note: Source defines an item deregister, perhaps you need to implement it
--> /home/sandro/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mio-1.0.2/src/event/source.rs:75:1
|
75 | pub trait Source {
| ^^^^^^^^^^^^^^^^
Some errors have detailed explanations: E0308, E0412, E0425, E0432, E0433, E0599.
For more information about an error, try rustc --explain E0308.
error: could not compile mio (lib) due to 47 previous errors
warning: build failed, waiting for other jobs to finish...
To Reproduce
Steps to reproduce the behavior:
Install the "wasm32-unknown-unknown" target rustup target add wasm32-unknown-unknown
Confirm that project builds cargo build --target wasm32-unknown-unknown cargo tree --target wasm32-unknown-unknown --invert mio (no matches is what we want)
Describe the bug
juniper_axum
is transitively bringing in themio
dependency, making it fail to compile in projects targetingwasm32-unknown-unknown
.The dependency
mio
is being brought here via:juniper_axum
→axum
→axum/tokio
→tokio/net
→mio
. By disabling the default features ofaxum
, we can disable itstokio
feature.This patch seems to fix the compilation issue:
Build log & errors
To Reproduce
Steps to reproduce the behavior:
rustup target add wasm32-unknown-unknown
cargo install cargo-generate && cargo generate --git https://github.com/rustwasm/wasm-pack-template
cargo add [email protected] --no-default-features
cargo add [email protected]
cargo build --target wasm32-unknown-unknown
cargo tree --target wasm32-unknown-unknown --invert mio
(no matches is what we want)cargo add [email protected]
cargo build --target wasm32-unknown-unknown
cargo tree --target wasm32-unknown-unknown --invert mio
Expected behavior
A WASM project with
juniper_axum
should compile without errors.Additional context
axum
's comment onmio
:The text was updated successfully, but these errors were encountered: