diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4138d61..b6634fa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,25 +9,29 @@ on: - cron: '50 4 * * *' workflow_dispatch: -env: - rust_toolchain: stable - jobs: compile: name: Compile runs-on: ubuntu-latest + + strategy: + matrix: + rust_toolchain: + - nightly + - 1.83 # MSRV + steps: - name: Setup | Checkout uses: actions/checkout@v2 - name: Setup | Rust uses: actions-rs/toolchain@v1 with: - toolchain: ${{ env.rust_toolchain }} + toolchain: ${{ matrix.rust_toolchain }} components: rustfmt, clippy - name: Setup | Std - run: rustup component add rust-src --toolchain ${{ env.rust_toolchain }}-x86_64-unknown-linux-gnu + run: rustup component add rust-src --toolchain ${{ matrix.rust_toolchain }}-x86_64-unknown-linux-gnu - name: Setup | Set default toolchain - run: rustup default ${{ env.rust_toolchain }} + run: rustup default ${{ matrix.rust_toolchain }} - name: Build | Fmt Check run: cargo fmt -- --check - name: Build | Clippy diff --git a/Cargo.toml b/Cargo.toml index f5cbf24..7f58994 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "edge-net" -version = "0.9.3" +version = "0.10.0" authors = ["Ivan Markov "] edition = "2021" categories = ["embedded", "hardware-support", "network-programming", "asynchronous"] @@ -9,7 +9,7 @@ description = "no_std and no-alloc async implementations of various network prot repository = "https://github.com/ivmarkov/edge-net" license = "MIT OR Apache-2.0" readme = "README.md" -rust-version = "1.78" +rust-version = "1.83" [features] default = ["io"] @@ -37,7 +37,7 @@ log = "0.4" anyhow = "1" env_logger = "0.10" embedded-io-async = "0.6" -embassy-time = { version = "0.3", features = ["std", "generic-queue"] } +embassy-time = { version = "0.4", features = ["std", "generic-queue-64"] } embassy-sync = "0.6" embassy-futures = "0.1" embedded-svc = { version = "0.28", features = ["std"] } @@ -108,20 +108,20 @@ members = [ [workspace.dependencies] embassy-futures = { version = "0.1", default-features = false } embassy-sync = { version = "0.6", default-features = false } -embassy-time = { version = "0.3", default-features = false } +embassy-time = { version = "0.4", default-features = false } embedded-io-async = { version = "0.6", default-features = false } embedded-svc = { version = "0.28", default-features = false } log = { version = "0.4", default-features = false } heapless = { version = "0.8", default-features = false } domain = { version = "0.10", default-features = false, features = ["heapless"] } -edge-captive = { version = "0.4.0", path = "edge-captive", default-features = false } -edge-dhcp = { version = "0.4.0", path = "edge-dhcp", default-features = false } -edge-http = { version = "0.4.1", path = "edge-http", default-features = false } -edge-mdns = { version = "0.4.0", path = "edge-mdns", default-features = false } +edge-captive = { version = "0.5.0", path = "edge-captive", default-features = false } +edge-dhcp = { version = "0.5.0", path = "edge-dhcp", default-features = false } +edge-http = { version = "0.5.0", path = "edge-http", default-features = false } +edge-mdns = { version = "0.5.0", path = "edge-mdns", default-features = false } edge-mqtt = { version = "0.4.0", path = "edge-mqtt", default-features = false } -edge-nal = { version = "0.4.2", path = "edge-nal", default-features = false } -edge-raw = { version = "0.4.0", path = "edge-raw", default-features = false } +edge-nal = { version = "0.5.0", path = "edge-nal", default-features = false } +edge-raw = { version = "0.5.0", path = "edge-raw", default-features = false } edge-ws = { version = "0.4.0", path = "edge-ws", default-features = false } -edge-nal-std = { version = "0.4.0", path = "edge-nal-std", default-features = false } -edge-nal-embassy = { version = "0.4.1", path = "edge-nal-embassy", default-features = false } +edge-nal-std = { version = "0.5.0", path = "edge-nal-std", default-features = false } +edge-nal-embassy = { version = "0.5.0", path = "edge-nal-embassy", default-features = false } diff --git a/edge-captive/CHANGELOG.md b/edge-captive/CHANGELOG.md index 2da4cec..1d6ee85 100644 --- a/edge-captive/CHANGELOG.md +++ b/edge-captive/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased +* Updated dependencies for compatibility with `embassy-time-driver` v0.2 + ## [0.4.0] - 2024-01-02 * Reduce logging level (#32) * Derive for DnsError diff --git a/edge-captive/Cargo.toml b/edge-captive/Cargo.toml index 25a83ef..2deb4f7 100644 --- a/edge-captive/Cargo.toml +++ b/edge-captive/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "edge-captive" -version = "0.4.0" +version = "0.5.0" edition = "2021" -rust-version = "1.77" +rust-version = "1.83" description = "Async + `no_std` + no-alloc implementation of a Captive Portal DNS" repository = "https://github.com/ivmarkov/edge-net" readme = "README.md" diff --git a/edge-dhcp/CHANGELOG.md b/edge-dhcp/CHANGELOG.md index 250e34e..4754f61 100644 --- a/edge-dhcp/CHANGELOG.md +++ b/edge-dhcp/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased +* Updated dependencies for compatibility with `embassy-time-driver` v0.2 + ## [0.4.0] - 2024-01-02 * Reduce logging level (#32) * Support for Captive Portal URLs (#31) diff --git a/edge-dhcp/Cargo.toml b/edge-dhcp/Cargo.toml index 1e8f328..5913307 100644 --- a/edge-dhcp/Cargo.toml +++ b/edge-dhcp/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "edge-dhcp" -version = "0.4.0" +version = "0.5.0" edition = "2021" -rust-version = "1.77" +rust-version = "1.83" description = "Async + `no_std` + no-alloc implementation of the DHCP protocol" repository = "https://github.com/ivmarkov/edge-net" readme = "README.md" diff --git a/edge-http/CHANGELOG.md b/edge-http/CHANGELOG.md index 5b5a702..6b88c13 100644 --- a/edge-http/CHANGELOG.md +++ b/edge-http/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased +* Updated dependencies for compatibility with `embassy-time-driver` v0.2 + ## [0.4.0] - 2024-01-02 * Connection type support (#33) * Proper TCP socket shutdown; Generic TCP timeout utils; built-in HTTP server timeouts; update docu (#34) diff --git a/edge-http/Cargo.toml b/edge-http/Cargo.toml index 99d8d9b..dbd6f28 100644 --- a/edge-http/Cargo.toml +++ b/edge-http/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "edge-http" -version = "0.4.1" +version = "0.5.0" edition = "2021" -rust-version = "1.77" +rust-version = "1.83" description = "Async + `no_std` + no-alloc implementation of the HTTP protocol" repository = "https://github.com/ivmarkov/edge-net" readme = "README.md" diff --git a/edge-mdns/CHANGELOG.md b/edge-mdns/CHANGELOG.md index a6cade0..ab29fe1 100644 --- a/edge-mdns/CHANGELOG.md +++ b/edge-mdns/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased +* Updated dependencies for compatibility with `embassy-time-driver` v0.2 + ## [0.4.0] - 2024-01-02 * Fix for #24 / avahi - always broadcast to any of the enabled muticast addresses, regardless how we were contacted with a query * Support for one-shot queries diff --git a/edge-mdns/Cargo.toml b/edge-mdns/Cargo.toml index ae1620a..dd836b1 100644 --- a/edge-mdns/Cargo.toml +++ b/edge-mdns/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "edge-mdns" -version = "0.4.0" +version = "0.5.0" edition = "2021" description = "Async + `no_std` + no-alloc implementation of an mDNS responder" repository = "https://github.com/ivmarkov/edge-net" diff --git a/edge-nal-embassy/CHANGELOG.md b/edge-nal-embassy/CHANGELOG.md index 70e60aa..3a48e39 100644 --- a/edge-nal-embassy/CHANGELOG.md +++ b/edge-nal-embassy/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased +* Updated dependencies for compatibility with `embassy-time-driver` v0.2 + ## [0.4.1] - 2024-01-05 * Fix regression: ability to UDP/TCP bind to socket 0.0.0.0 diff --git a/edge-nal-embassy/Cargo.toml b/edge-nal-embassy/Cargo.toml index cf0d55f..5f7fc52 100644 --- a/edge-nal-embassy/Cargo.toml +++ b/edge-nal-embassy/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "edge-nal-embassy" -version = "0.4.1" +version = "0.5.0" edition = "2021" -rust-version = "1.77" +rust-version = "1.83" description = "An implementation of edge-nal based on `embassy-net`" repository = "https://github.com/ivmarkov/edge-net" readme = "README.md" @@ -19,7 +19,7 @@ embedded-io-async = { workspace = true } edge-nal = { workspace = true } heapless = { workspace = true } # Do not require these features and conditionalize the code instead -embassy-net = { version = "0.5", features = [ +embassy-net = { version = "0.6", features = [ "tcp", "udp", "dns", diff --git a/edge-nal-std/CHANGELOG.md b/edge-nal-std/CHANGELOG.md index ecd8e4a..6c9399f 100644 --- a/edge-nal-std/CHANGELOG.md +++ b/edge-nal-std/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] +* Updated dependencies for compatibility with `embassy-time-driver` v0.2 + ## [0.4.0] - 2024-01-02 * Proper TCP socket shutdown; Generic TCP timeout utils; built-in HTTP server timeouts; update docu (#34) * Fix forgotten ref to async-io diff --git a/edge-nal-std/Cargo.toml b/edge-nal-std/Cargo.toml index c6ba516..37728ed 100644 --- a/edge-nal-std/Cargo.toml +++ b/edge-nal-std/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "edge-nal-std" -version = "0.4.0" +version = "0.5.0" edition = "2021" -rust-version = "1.77" +rust-version = "1.83" description = "A STD implementation of edge-nal based on `async-io`" repository = "https://github.com/ivmarkov/edge-net" readme = "README.md" @@ -18,7 +18,7 @@ categories = [ embedded-io-async = { workspace = true, features = ["std"] } edge-nal = { workspace = true } async-io = "2" -async-io-mini = { version = "0.2", optional = true } +async-io-mini = { version = "0.3", git = "https://github.com/ivmarkov/async-io-mini", optional = true } futures-lite = "2" libc = "0.2" heapless = { workspace = true } diff --git a/edge-nal/CHANGELOG.md b/edge-nal/CHANGELOG.md index 2d37b44..40fe299 100644 --- a/edge-nal/CHANGELOG.md +++ b/edge-nal/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased +* Updated `embassy-time` to v0.4 + ## [0.4.0] - 2024-01-02 * Proper TCP socket shutdown with a new `TcpShutdown` trait; Generic TCP timeout utils (#34) * WithTimeout impl for TcpAccept; with_timeout now usable for any fallible future diff --git a/edge-nal/Cargo.toml b/edge-nal/Cargo.toml index 427a6bd..46772b0 100644 --- a/edge-nal/Cargo.toml +++ b/edge-nal/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "edge-nal" -version = "0.4.2" +version = "0.5.0" edition = "2021" -rust-version = "1.77" +rust-version = "1.83" description = "Hosts a bunch of traits which are not yet available in the embedded-nal-async crate" repository = "https://github.com/ivmarkov/edge-net" readme = "README.md" diff --git a/edge-raw/CHANGELOG.md b/edge-raw/CHANGELOG.md index 6e3e1d2..1559992 100644 --- a/edge-raw/CHANGELOG.md +++ b/edge-raw/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased +* Updated dependencies for compatibility with `embassy-time-driver` v0.2 + ## [0.4.0] - 2024-01-02 * Derive more for Error (Copy, Clone, Eq, PartialEq, Hash) diff --git a/edge-raw/Cargo.toml b/edge-raw/Cargo.toml index bb2f5e0..c10633a 100644 --- a/edge-raw/Cargo.toml +++ b/edge-raw/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "edge-raw" -version = "0.4.0" +version = "0.5.0" edition = "2021" -rust-version = "1.77" +rust-version = "1.83" description = "Async + `no_std` + no-alloc implementation of IP and UDP packet creation and parsing" repository = "https://github.com/ivmarkov/edge-net" readme = "README.md" diff --git a/edge-ws/README.md b/edge-ws/README.md index 7d1cf69..37f30b7 100644 --- a/edge-ws/README.md +++ b/edge-ws/README.md @@ -98,7 +98,7 @@ where for payload in ["Hello world!", "How are you?", "I'm fine, thanks!"] { let header = FrameHeader { frame_type: FrameType::Text(false), - payload_len: payload.as_bytes().len() as _, + payload_len: payload.len() as _, mask_key: rng_source.next_u32().into(), }; diff --git a/examples/ws_client.rs b/examples/ws_client.rs index c6f9d26..9616779 100644 --- a/examples/ws_client.rs +++ b/examples/ws_client.rs @@ -74,7 +74,7 @@ where for payload in ["Hello world!", "How are you?", "I'm fine, thanks!"] { let header = FrameHeader { frame_type: FrameType::Text(false), - payload_len: payload.as_bytes().len() as _, + payload_len: payload.len() as _, mask_key: rng_source.next_u32().into(), };