Skip to content

Add a Using the library section to README and list the ESP-IDF build's dependencies in NOTICES.md #40

Closed

Description

@kahrendt

Problem

README has no snippet showing start, a listener, open_input() and a write loop, and no CMake consumption snippet; the only example is the 2.5k-line server_cli. NOTICES.md omits the ESP-IDF build's dependencies (the esphome/noise-c component, libsodium, esp-dsp, mbedTLS) and gives no upstream URL for micro-resampler.

Evidence

Checked against the code at e69f3b46a801:

  • README.md has 111 lines and no code snippet showing start/provider/listener/open_input plus a write loop, and no CMake consumption (add_subdirectory or FetchContent) snippet. The only build commands are for the library's own build, at lines 28-46.
  • ESP-IDF gets one line (README.md:46): 'The library also builds as an ESP-IDF component (cmake/esp_idf.cmake).'
  • Line counts match. examples/server_cli totals 7474 lines, main.cpp has 2496, web_assets/dashboard.html has 738, and run() starts at line 1987 and runs to the end of the file, about 500 lines.
  • NOTICES.md omits the ESP build's dependencies. cmake/esp_idf.cmake:7-15 requires esphome__noise-c, esphome__libsodium, espressif__esp-dsp and mbedtls, and NOTICES.md lists libsodium, esp-dsp and mbedTLS nowhere. noise-c is listed only as the host's fetched esphome-libs fork, with no note on the ESP component.
  • NOTICES.md's micro-resampler entry has no upstream URL. It gives Location, Version, License and Copyright, whereas the stb entry has a 'Source:' URL. third_party/micro-resampler/VENDORED.md has none either.

Checked and not part of this issue

  • docs/conventions.md:66 says server_cli 'uses only the public API' and that is true. Every sendspin include in examples/server_cli is <sendspin/server/{server,config,types,discovery}.h>, and none reaches into src/. Linking sendspin_server_cpp_beast (examples/CMakeLists.txt:30) is for server_cli's own --web dashboard (web_ui.cpp on Beast, per the comment at lines 28-29). It is a third-party dependency of the example, not a use of a non-public library API. The convention is not misleading, so this sub-claim should be dropped.
  • 'Relies on the archive's Asio definitions' is a build-linkage detail. The beast target is an INTERFACE target carrying the compile definitions (cmake/dependencies.cmake:34-45) that any consumer including Beast needs. It is not an API-boundary violation.
  • The 'a first user must read 2.5k lines' framing is overstated. include/sendspin/server/server.h carries the threading contract and doc comments, and README.md:66-108 documents server_cli's commands and options. A snippet would still help, but the header docs are a partial substitute.

Direction

Add the section with both snippets, and complete NOTICES.md.

Done when

  • README shows the minimal use; NOTICES.md lists every ESP-IDF dependency.

Activity

  1. self-assigned this
    on Oct 15, 2026
  2. kahrendt commented on Oct 15, 2026

    @kahrendt
    ContributorAuthor

    Claimed 6bd991cb; branch issue-40-readme-notices

  3. kahrendt commented on Oct 15, 2026

    @kahrendt
    ContributorAuthor

    Draft PR: #90

  4. added a commit that references this issue on Oct 15, 2026
    27321ba
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions