• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

veeso / suppaftp / 27873675394
80%

Build:
DEFAULT BRANCH: main
Ran 20 Jun 2026 02:14PM UTC
Jobs 1
Files 29
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Jun 2026 02:13PM UTC coverage: 80.003% (+1.2%) from 78.808%
27873675394

push

github

web-flow
feat!: replace async-std runtime with smol (#162)

async-std is unmaintained upstream (RUSTSEC-2025-0052). Drop it as an async
backend and replace it with smol, an equivalent lightweight runtime.

The TLS backends are unchanged: futures-rustls and async-native-tls are
runtime-agnostic, so only the runtime glue (TcpStream/TcpListener, timers,
spawn, task) moved from async-std to smol. async-native-tls already ran on its
runtime-smol backend. The direct futures-lite dependency is gone too: smol
re-exports it and nothing else used it, so it is no longer compiled for
sync/tokio builds.

This commit also centralizes dependencies into [workspace.dependencies], applies
Cargo.toml conventions across all manifests, and renames mod.rs files to the
module_name.rs style.

Migrating from async-std:

- Cargo features: rename every async-std* feature to its smol* counterpart.
  - async-std                            -> smol
  - async-std-async-native-tls           -> smol-async-native-tls
  - async-std-async-native-tls-vendored  -> smol-async-native-tls-vendored
  - async-std-rustls-aws-lc-rs           -> smol-rustls-aws-lc-rs
  - async-std-rustls-ring                -> smol-rustls-ring

- Module path: the async module is now suppaftp::smol instead of
  suppaftp::async_std. The stream type aliases are unchanged: AsyncFtpStream,
  AsyncNativeTlsFtpStream, AsyncRustlsFtpStream.

- Helper types: AsyncStdTlsStream is now SmolTlsStream, and
  AsyncStdPassiveStreamBuilder is now SmolPassiveStreamBuilder.

- Runtime: drive the client on a smol executor (e.g. smol::block_on) instead of
  async_std::task::block_on or #[async_std::main].

Example:

    // before
    use suppaftp::async_std::AsyncFtpStream;
    async_std::task::block_on(async {
        let mut ftp = AsyncFtpStream::connect("127.0.0.1:21").await.unwrap();
    });

    // after
    use suppaftp::smol::AsyncFtpStream;
    smol::block_on(async {
        let mut ftp = AsyncFtpStream::connect("127.0.0.1:21").await.u... (continued)

514 of 582 new or added lines in 1 file covered. (88.32%)

4925 of 6156 relevant lines covered (80.0%)

133.13 hits per line

Uncovered Changes

Lines Coverage ∆ File
68
87.21
crates/suppaftp/src/async_ftp/smol_ftp.rs
Jobs
ID Job ID Ran Files Coverage
1 27873675394.1 20 Jun 2026 02:14PM UTC 29
80.0
GitHub Action Run
Source Files on build 27873675394
  • Tree
  • List 29
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27873675394
  • d53da953 on github
  • Prev Build on main (#27872349327)
  • Next Build on main (#27873941740)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc