zmux 1.0.2

Rust implementation of the ZMux v1 stream multiplexing protocol
Documentation
name: Check
on:
  workflow_dispatch:
  pull_request:
  push:
    branches:
      - main
      - 'releases/*'

jobs:
  rust-checks:
    runs-on: ubuntu-latest
    permissions:
      contents: read

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Rust
        shell: bash
        run: |
          rustup toolchain install stable --profile minimal
          rustup default stable
          rustup component add rustfmt clippy

      - name: Cache Cargo
        uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: rust-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            rust-${{ runner.os }}-

      - name: Check formatting
        run: cargo fmt --all -- --check

      - name: Run clippy
        run: cargo clippy --locked --workspace --all-targets -- -D warnings

      - name: Run clippy with optional async I/O features
        run: cargo clippy --locked -p zmux --features tokio-io,futures-io --all-targets -- -D warnings

      - name: Run tests
        run: cargo test --locked --workspace --all-features

      - name: Build docs
        run: cargo doc --locked --workspace --all-features --no-deps

      - name: Package core crate
        run: cargo package --locked -p zmux