Skip to content

Conditional inclusion of tokio-net and tokio-signal for targets that do not support them. #541

Open
actix/actix-net
#467
@axos88

Description

@axos88

Expected Behavior

Actix should be able to compile on system that do not support tokio-net and tokio-signal.

Current Behavior

tokio net and signal features are currently hard-included from the actix-rt crate, although actix-rt barely uses them.

Possible Solution

Create a feature gate that will enable inclusion of tokio-signal and tokio-net. Make it included by default, to remain backward compatible.

tokio-signal is only pub used from actix-rt::signal, and that module should only be compiled if tokio-signal is explicitly asked for by the user of the actix library.

actix::net provides the ActixStream, and could be left out, if unused, although I'm not particularly sure why tokio::net is required for ActixStream support. The same gate should be used for default_tokio_runtime calling enable_io or not.

Steps to Reproduce (for bugs)

include actix = "*" for a "riscv32imc-esp-espidf" target, using esp-idf OS, using std.

Can try to provide a minimal repro project if necessary, although I don't think there is need for one.

Your Environment

Compiling rust for an ESP32C3 target (RISCV).

  • Rust Version: rustc 1.65.0-nightly (750bd1a7f 2022-09-14)
  • Actix Version: 0.13.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions