ezsockets 0.7.1

WebSockets server & client made easy
Documentation
# Thansk to https://github.com/helix-editor/helix
name: Continuous integration
on:
    pull_request:
    push:
        branches:
            - master

jobs:
    check:
        name: Check
        runs-on: ubuntu-latest
        steps:
            - name: Checkout sources
              uses: actions/checkout@v5
              with:
                  submodules: true

            - name: Install dependencies
              run: sudo apt-get install libdbus-1-dev

            - name: Install stable toolchain
              uses: actions-rs/toolchain@v1
              with:
                  profile: minimal
                  toolchain: stable
                  override: true

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

            - name: Cache cargo index
              uses: actions/cache@v4
              with:
                  path: ~/.cargo/git
                  key: ${{ runner.os }}-v1-cargo-index-${{ hashFiles('**/Cargo.lock') }}

            - name: Cache cargo target dir
              uses: actions/cache@v4
              with:
                  path: target
                  key: ${{ runner.os }}-v1-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}

            - name: Run cargo check
              uses: actions-rs/cargo@v1
              with:
                  command: check

    test:
        name: Test Suite
        runs-on: ubuntu-latest
        steps:
            - name: Checkout sources
              uses: actions/checkout@v5
              with:
                  submodules: true

            - name: Install dependencies
              run: sudo apt-get install libasound2-dev libxi-dev libgl-dev

            - name: Install stable toolchain
              uses: actions-rs/toolchain@v1
              with:
                  profile: minimal
                  toolchain: stable
                  override: true

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

            - name: Cache cargo index
              uses: actions/cache@v4
              with:
                  path: ~/.cargo/git
                  key: ${{ runner.os }}-v1-cargo-index-${{ hashFiles('**/Cargo.lock') }}

            - name: Cache cargo target dir
              uses: actions/cache@v4
              with:
                  path: target
                  key: ${{ runner.os }}-v1-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}

            - name: Run cargo test
              uses: actions-rs/cargo@v1
              with:
                  command: test
                  args: --all-features

    lints:
        name: Lints
        runs-on: ubuntu-latest
        steps:
            - name: Checkout sources
              uses: actions/checkout@v5
              with:
                  submodules: true

            - name: Install dependencies
              run: sudo apt-get install libdbus-1-dev

            - name: Install stable toolchain
              uses: actions-rs/toolchain@v1
              with:
                  profile: minimal
                  toolchain: stable
                  override: true
                  components: rustfmt, clippy

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

            - name: Cache cargo index
              uses: actions/cache@v4
              with:
                  path: ~/.cargo/git
                  key: ${{ runner.os }}-v1-cargo-index-${{ hashFiles('**/Cargo.lock') }}

            - name: Cache cargo target dir
              uses: actions/cache@v4
              with:
                  path: target
                  key: ${{ runner.os }}-v1-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}

            - name: Run cargo fmt
              uses: actions-rs/cargo@v1
              with:
                  command: fmt
                  args: --all -- --check

            - name: Run cargo clippy
              uses: actions-rs/cargo@v1
              with:
                  command: clippy
                  args: -- -D warnings