ruststream 0.4.0

Async messaging framework for Rust: broker-agnostic traits, router, codecs, and a conformance harness for broker authors.
Documentation
name: Docs

on:
  push:
    branches: [main]
    paths: &docs-paths
      - docs/**
      - mkdocs.yml
      - overrides/**
      - examples/**
      # the testing and conformance guides embed their snippets from these test files
      - tests/doc_*.rs
      - tests/conformance_self.rs
      - scripts/lint_doc_fences.py
      - .github/workflows/docs.yml
  pull_request:
    branches: [main]
    paths: *docs-paths
  workflow_dispatch:

permissions:
  contents: read

concurrency:
  group: docs-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build:
    name: Build site
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          persist-credentials: false

      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"

      - name: Install docs toolchain
        run: pip install -r docs/requirements.txt

      - name: Lint doc code fences
        run: python3 scripts/lint_doc_fences.py

      - name: Build site (strict)
        run: mkdocs build --strict