Directories
¶
| Path | Synopsis |
|---|---|
|
Package admin is Ether's owner-facing HTTP surface: the JSON API under /ether/api/ and the embedded React SPA (setup wizard, dashboard, settings, logs, resolver traces) served under /ether/.
|
Package admin is Ether's owner-facing HTTP surface: the JSON API under /ether/api/ and the embedded React SPA (setup wizard, dashboard, settings, logs, resolver traces) served under /ether/. |
|
Package app wires Ether's components into one running server: the Plex front end and the owner UI on one port, and the background services (catalogue sync, plex.tv registration, prefetch, LAN discovery) behind it.
|
Package app wires Ether's components into one running server: the Plex front end and the owner UI on one port, and the background services (catalogue sync, plex.tv registration, prefetch, LAN discovery) behind it. |
|
Package archive reads the headers of RAR (4.x and 5.x) and 7z archives and maps each inner file onto byte ranges (extents) of the archive volumes, so that store-mode members can be streamed (with native decryption when needed) out of the volumes without extracting anything.
|
Package archive reads the headers of RAR (4.x and 5.x) and 7z archives and maps each inner file onto byte ranges (extents) of the archive volumes, so that store-mode members can be streamed (with native decryption when needed) out of the volumes without extracting anything. |
|
archivetest
Package archivetest builds small RAR 4.x / RAR 5.0 archives (and Copy-mode 7z archives) for tests.
|
Package archivetest builds small RAR 4.x / RAR 5.0 archives (and Copy-mode 7z archives) for tests. |
|
Package artwork serves and makes Ether's artwork: a caching proxy for TMDB images (memory LRU over a disk cache) and a pure-Go poster generator for collections (collage and backdrop treatments with the title set in the Go fonts).
|
Package artwork serves and makes Ether's artwork: a caching proxy for TMDB images (memory LRU over a disk cache) and a pure-Go poster generator for collections (collage and backdrop treatments with the title set in the Go fonts). |
|
Package auth implements core.Auth: it maps the X-Plex-Token a Plex app presents to an Ether user, and keeps the users table with per-user settings (stream limit, content rating cap, languages, sections).
|
Package auth implements core.Auth: it maps the X-Plex-Token a Plex app presents to an Ether user, and keeps the users table with per-user settings (stream limit, content rating cap, languages, sections). |
|
Package availability discovers releases incrementally and spends a bounded background allowance validating useful candidates.
|
Package availability discovers releases incrementally and spends a bounded background allowance validating useful candidates. |
|
Package backup creates integrity-checked, portable snapshots without copying live WAL files.
|
Package backup creates integrity-checked, portable snapshots without copying live WAL files. |
|
Package cachefill maintains an opt-in, bounded local shelf of complete media sources.
|
Package cachefill maintains an opt-in, bounded local shelf of complete media sources. |
|
Package cardigann runs owner-supplied indexer definitions written in the Cardigann YAML format (the format Prowlarr and Jackett use for their built-in sites).
|
Package cardigann runs owner-supplied indexer definitions written in the Cardigann YAML format (the format Prowlarr and Jackett use for their built-in sites). |
|
Package catalog implements core.Catalog: a SQLite mirror of a filtered TMDB slice plus on-demand fetches for anything else.
|
Package catalog implements core.Catalog: a SQLite mirror of a filtered TMDB slice plus on-demand fetches for anything else. |
|
Package cluster is Ether's multi-node runtime: node identity, liveness heartbeats, leader election and a small cross-node event bus.
|
Package cluster is Ether's multi-node runtime: node identity, liveness heartbeats, leader election and a small cross-node event bus. |
|
Package clusterbus is the small surface components use to take part in a cluster: publishing and receiving events on the cluster bus, knowing their own node ID and which nodes are alive, and dropping in-memory caches when another node writes the shared database (Invalidator).
|
Package clusterbus is the small surface components use to take part in a cluster: publishing and receiving events on the cluster bus, knowing their own node ID and which nodes are alive, and dropping in-memory caches when another node writes the shared database (Invalidator). |
|
Package clusterconfig keeps the settings and identity material that the nodes of an Ether cluster share in the owner's PostgreSQL database:
|
Package clusterconfig keeps the settings and identity material that the nodes of an Ether cluster share in the owner's PostgreSQL database: |
|
Package collections is Ether's collection engine.
|
Package collections is Ether's collection engine. |
|
Package config is Ether's owner-editable settings, stored as JSON in the data directory.
|
Package config is Ether's owner-editable settings, stored as JSON in the data directory. |
|
Package core holds the domain types and the interfaces between Ether's components.
|
Package core holds the domain types and the interfaces between Ether's components. |
|
Package debrid streams torrent releases through owner-configured debrid services (Real-Debrid, TorBox, AllDebrid, Premiumize, Debrid-Link, Offcloud).
|
Package debrid streams torrent releases through owner-configured debrid services (Real-Debrid, TorBox, AllDebrid, Premiumize, Debrid-Link, Offcloud). |
|
Package episodeorder provides presentation-only TV ordering.
|
Package episodeorder provides presentation-only TV ordering. |
|
Package extras lists and resolves trailers and other clips attached to catalogue titles (Plex "Extras" and Cinema Trailers).
|
Package extras lists and resolves trailers and other clips attached to catalogue titles (Plex "Extras" and Cinema Trailers). |
|
Package faillog logs a repeating background failure (a heartbeat or sync loop that cannot reach the database) without flooding the log: the first failure is logged at WARN, later ones are summarised at most once per interval, and the recovery is logged once at INFO.
|
Package faillog logs a repeating background failure (a heartbeat or sync loop that cannot reach the database) without flooding the log: the first failure is logged at WARN, later ones are summarised at most once per interval, and the recovery is logged once at INFO. |
|
Package flight collapses concurrent calls for the same key into one execution whose result every caller shares.
|
Package flight collapses concurrent calls for the same key into one execution whose result every caller shares. |
|
Package langtag is the single shared language-tag helper for Ether.
|
Package langtag is the single shared language-tag helper for Ether. |
|
Package libraryfilter evaluates owner catalogue exclusions without network access.
|
Package libraryfilter evaluates owner catalogue exclusions without network access. |
|
Package livetv implements owner-defined virtual channels and IPTV playout.
|
Package livetv implements owner-defined virtual channels and IPTV playout. |
|
Package llm is an optional multi-provider chat client (OpenAI, Anthropic, Gemini, OpenRouter, Ollama, LM Studio, any OpenAI-compatible server, …) used for natural-language recommendation rows: "more like this" for a title and themed rows from a user's history ("Slow-burn sci-fi with a twist").
|
Package llm is an optional multi-provider chat client (OpenAI, Anthropic, Gemini, OpenRouter, Ollama, LM Studio, any OpenAI-compatible server, …) used for natural-language recommendation rows: "more like this" for a title and themed rows from a user's history ("Slow-burn sci-fi with a twist"). |
|
Package logfile provides Ether's on-disk logs: a size-rotated log file (stderr is discarded under a Windows service and unrotated under launchd) and the crash log that receives fatal runtime traces.
|
Package logfile provides Ether's on-disk logs: a size-rotated log file (stderr is discarded under a Windows service and unrotated under launchd) and the crash log that receives fatal runtime traces. |
|
Package lru provides a least-recently-used cache bounded by entry count and total cost.
|
Package lru provides a least-recently-used cache bounded by entry count and total cost. |
|
Package markers supplies release-duration-specific skip ranges.
|
Package markers supplies release-duration-specific skip ranges. |
|
Package migrate performs read-only PMS discovery and reviewed, idempotent local imports.
|
Package migrate performs read-only PMS discovery and reviewed, idempotent local imports. |
|
Package newznab implements core.Indexer against Newznab-compatible Usenet indexers, with per-indexer daily budgets and a result cache.
|
Package newznab implements core.Indexer against Newznab-compatible Usenet indexers, with per-indexer daily budgets and a result cache. |
|
Package notify provides durable, rule-filtered owner notifications.
|
Package notify provides durable, rule-filtered owner notifications. |
|
Package nzb parses NZB documents: the XML index of a Usenet post that lists every file, its newsgroups and the message IDs of its segments (articles).
|
Package nzb parses NZB documents: the XML index of a Usenet post that lists every file, its newsgroups and the message IDs of its segments (articles). |
|
Package overlays creates truthful, versioned poster variants in pure Go.
|
Package overlays creates truthful, versioned poster variants in pure Go. |
|
Package par2 parses PAR2 2.0 metadata and performs bounded GF16 recovery.
|
Package par2 parses PAR2 2.0 metadata and performs bounded GF16 recovery. |
|
par2test
Package par2test builds PAR2 2.0 metadata packets and index files for tests.
|
Package par2test builds PAR2 2.0 metadata packets and index files for tests. |
|
Package personalize is Ether's Netflix-style personalization engine.
|
Package personalize is Ether's Netflix-style personalization engine. |
|
Package playback implements core.Playback: it binds a user, a client and a title to a resolved, open release, enforces stream limits, serves the source to clients (direct play) and to ffmpeg (a loopback HTTP server), fails over to another release mid-stream when articles go missing, and protects the releases of live and in-progress titles in the segment cache.
|
Package playback implements core.Playback: it binds a user, a client and a title to a resolved, open release, enforces stream limits, serves the source to clients (direct play) and to ffmpeg (a loopback HTTP server), fails over to another release mid-stream when articles go missing, and protects the releases of live and in-progress titles in the segment cache. |
|
Package plex is Ether's Plex Media Server front end: the HTTP API that official Plex apps (Web, iOS, Apple TV, Android, TVs) talk to.
|
Package plex is Ether's Plex Media Server front end: the HTTP API that official Plex apps (Web, iOS, Apple TV, Android, TVs) talk to. |
|
model
Package model holds the Plex Media Server response models and the encoder that renders one model as either PMS-style XML or PMS-style JSON.
|
Package model holds the Plex Media Server response models and the encoder that renders one model as either PMS-style XML or PMS-style JSON. |
|
Package plexguid maps verified external identities through Plex's metadata provider.
|
Package plexguid maps verified external identities through Plex's metadata provider. |
|
Package plextv is Ether's plex.tv client: PIN sign-in, server claim, connection publishing, resources, shared users and their server access tokens, and plex.direct certificates.
|
Package plextv is Ether's plex.tv client: PIN sign-in, server claim, connection publishing, resources, shared users and their server access tokens, and plex.direct certificates. |
|
Package pmsconform captures and compares the HTTP surface exposed by Plex Media Servers.
|
Package pmsconform captures and compares the HTTP surface exposed by Plex Media Servers. |
|
Package prefetch warms the segment cache in the background so the next episode and the resume point of in-progress titles start instantly.
|
Package prefetch warms the segment cache in the background so the next episode and the resume point of in-progress titles start instantly. |
|
Package ratings caches licensed, owner-keyed rating data.
|
Package ratings caches licensed, owner-keyed rating data. |
|
Package recommend supplies detail-page related rows.
|
Package recommend supplies detail-page related rows. |
|
Package releaseparse parses scene and P2P release names into core.ReleaseInfo.
|
Package releaseparse parses scene and P2P release names into core.ReleaseInfo. |
|
Package remote handles Ether's network presence: LAN address enumeration, WAN IP detection, Plex connection URIs (plain IP and *.plex.direct), UPnP IGD and NAT-PMP port mapping, GDM LAN discovery and reachability probes.
|
Package remote handles Ether's network presence: LAN address enumeration, WAN IP detection, Plex connection URIs (plain IP and *.plex.direct), UPnP IGD and NAT-PMP port mapping, GDM LAN discovery and reachability probes. |
|
Package resolver implements core.Resolver: it turns a catalogue title plus client capabilities into a health-checked release.
|
Package resolver implements core.Resolver: it turns a catalogue title plus client capabilities into a health-checked release. |
|
Package retryafter parses HTTP Retry-After values.
|
Package retryafter parses HTTP Retry-After values. |
|
Package safety persists owner policy and enforces it at Plex request boundaries.
|
Package safety persists owner policy and enforces it at Plex request boundaries. |
|
Package schedule provides wall-clock deadlines for periodic background work.
|
Package schedule provides wall-clock deadlines for periodic background work. |
|
Package segcache is Ether's on-disk cache of decoded Usenet segments.
|
Package segcache is Ether's on-disk cache of decoded Usenet segments. |
|
Package service runs Ether as an operating-system service: systemd on Linux, launchd on macOS and the Service Control Manager on Windows, via github.com/kardianos/service.
|
Package service runs Ether as an operating-system service: systemd on Linux, launchd on macOS and the Service Control Manager on Windows, via github.com/kardianos/service. |
|
Package spike serves a handful of local video files as a Plex library so the Plex front end (internal/plex) can be tested against official Plex apps before the Usenet engine exists.
|
Package spike serves a handful of local video files as a Plex library so the Plex front end (internal/plex) can be tested against official Plex apps before the Usenet engine exists. |
|
cmd/ether-spike
command
Command ether-spike serves local video files through Ether's Plex front end, for testing official Plex apps (and pmsdiff) before the Usenet engine is wired in.
|
Command ether-spike serves local video files through Ether's Plex front end, for testing official Plex apps (and pmsdiff) before the Usenet engine is wired in. |
|
Package state implements per-user watch state and playlists over SQLite: core.State and core.Playlists.
|
Package state implements per-user watch state and playlists over SQLite: core.State and core.Playlists. |
|
Package stats records owner analytics from observed playback and provider data.
|
Package stats records owner analytics from observed playback and provider data. |
|
Package store opens Ether's database and applies each component's migrations.
|
Package store opens Ether's database and applies each component's migrations. |
|
Package stream is Ether's stream engine: it turns an NZB into a seekable core.MediaSource without writing the full file anywhere.
|
Package stream is Ether's stream engine: it turns an NZB into a seekable core.MediaSource without writing the full file anywhere. |
|
Package stremio searches Stremio stream addons for torrent releases.
|
Package stremio searches Stremio stream addons for torrent releases. |
|
Package subtitles fetches missing subtitle languages from OpenSubtitles and serves them as external (sidecar) tracks.
|
Package subtitles fetches missing subtitle languages from OpenSubtitles and serves them as external (sidecar) tracks. |
|
Package sysload samples this machine's load for the owner Overview: CPU, memory, network throughput, GPU (when the platform reports it) and Ether's own CPU and memory.
|
Package sysload samples this machine's load for the owner Overview: CPU, memory, network throughput, GPU (when the platform reports it) and Ether's own CPU and memory. |
|
Package tmdb is a TMDB API v3 client with rate limiting, retries, request coalescing and an ETag/TTL response cache.
|
Package tmdb is a TMDB API v3 client with rate limiting, retries, request coalescing and an ETag/TTL response cache. |
|
Package trackprefs persists viewer stream policy and show-specific choices.
|
Package trackprefs persists viewer stream policy and show-specific choices. |
|
Package trakt is the optional per-user Trakt integration: OAuth device flow sign-in, scrobbling Ether watch events to Trakt, and pulling Trakt history / recommendations / watchlist back in as recommendation sources.
|
Package trakt is the optional per-user Trakt integration: OAuth device flow sign-in, scrobbling Ether watch events to Trakt, and pulling Trakt history / recommendations / watchlist back in as recommendation sources. |
|
Package transcode wraps Ether's bundled ffmpeg: discovery, hardware encoder detection, probing, the direct play / remux / transcode decision and HLS and MPEG-DASH sessions.
|
Package transcode wraps Ether's bundled ffmpeg: discovery, hardware encoder detection, probing, the direct play / remux / transcode decision and HLS and MPEG-DASH sessions. |
|
Package transcodebench implements a reproducible benchmark harness that drives the real transcode.Manager (probe, decision, HLS sessions and ServeSegment) against a loopback range-capable HTTP source serving a local fixture file.
|
Package transcodebench implements a reproducible benchmark harness that drives the real transcode.Manager (probe, decision, HLS sessions and ServeSegment) against a loopback range-capable HTTP source serving a local fixture file. |
|
Package updater implements Ether's signed self-update feed.
|
Package updater implements Ether's signed self-update feed. |
|
Package usenet is Ether's Usenet layer: an NNTP client, per-provider connection pools with priority scheduling and circuit breakers, and a multi-provider fetcher that implements core.ArticleFetcher with primary-first ordering and backfill from block accounts.
|
Package usenet is Ether's Usenet layer: an NNTP client, per-provider connection pools with priority scheduling and circuit breakers, and a multi-provider fetcher that implements core.ArticleFetcher with primary-first ordering and backfill from block accounts. |
|
nntptest
Package nntptest provides an in-memory NNTP server for tests across Ether: articles keyed by message-id (yEnc-encoded on the way in), optional AUTHINFO, TLS, missing articles, latency, a connection limit and fault injection, plus Post, which uploads files as multipart yEnc segments and returns a matching NZB document.
|
Package nntptest provides an in-memory NNTP server for tests across Ether: articles keyed by message-id (yEnc-encoded on the way in), optional AUTHINFO, TLS, missing articles, latency, a connection limit and fault injection, plus Post, which uploads files as multipart yEnc segments and returns a matching NZB document. |
|
Package watchlist ingests authorized viewers' watchlists and lazily checks their release availability.
|
Package watchlist ingests authorized viewers' watchlists and lazily checks their release availability. |
|
Package yenc implements the yEnc binary encoding used for Usenet binary posts (http://www.yenc.org/yenc-draft.1.3.txt): a fast streaming decoder with =ybegin/=ypart/=yend parsing and CRC32 verification, and an encoder used by tests and the fake NNTP server.
|
Package yenc implements the yEnc binary encoding used for Usenet binary posts (http://www.yenc.org/yenc-draft.1.3.txt): a fast streaming decoder with =ybegin/=ypart/=yend parsing and CRC32 verification, and an encoder used by tests and the fake NNTP server. |
Click to show internal directories.
Click to hide internal directories.