sendit has 16 direct runtime dependencies and 1 direct test dependency. All are permissive open-source licences compatible with the project’s MIT licence.

The module graph is managed with go mod tidy and kept minimal — no dependency appears that cannot be justified by the table below.

Direct dependencies

ModuleVersionLicencePurpose
github.com/charmbracelet/bubbleteav1.3.10MITElm-architecture TUI framework — powers the --tui terminal dashboard
github.com/charmbracelet/lipglossv1.1.0MITStyle definitions for the terminal UI (bold labels, colour-coded counters)
github.com/chromedp/chromedpv0.15.0MITBrowser automation via the Chrome DevTools Protocol — powers the browser driver
github.com/coder/websocketv1.8.14ISCWebSocket client — powers the websocket driver
github.com/miekg/dnsv1.1.72BSD-3-ClauseFull-featured DNS client and server library — powers the dns driver
github.com/prometheus/client_golangv1.23.2Apache-2.0Prometheus metrics exposition (/metrics endpoint)
github.com/robfig/cron/v3v3.0.1MITCron expression parser — used by scheduled pacing mode to define active windows
github.com/rs/zerologv1.34.0MITZero-allocation structured logger; zerolog.Nop() used internally for no-op metrics
github.com/shirou/gopsutil/v3v3.24.5BSD-3-ClauseCross-platform CPU and memory utilisation polling — powers the resource admission gate
github.com/spf13/cobrav1.10.2Apache-2.0CLI framework — commands, flags, and shell completion generation
github.com/spf13/viperv1.21.0MITConfig file loading with environment variable overlay and mapstructure unmarshalling
golang.org/x/netv0.52.0BSD-3-Clausehtml subpackage — HTML parser used by the generate command to extract links
golang.org/x/timev0.15.0BSD-3-Clauserate subpackage — token-bucket rate limiter used by rate_limited and scheduled pacing
google.golang.org/grpcv1.79.3Apache-2.0gRPC client and server — powers the grpc driver; includes reflection client and health service
google.golang.org/genproto/googleapis/rpcv0.0.0-20251202Apache-2.0Generated gRPC status and error type definitions — transitive requirement of google.golang.org/grpc
modernc.org/sqlitev1.47.0BSD-3-ClausePure-Go SQLite driver (CGo-free) — used by generate to read Chrome/Firefox history and bookmark databases

Test dependencies

ModuleVersionLicencePurpose
github.com/cucumber/godogv0.15.1MITCucumber/Gherkin BDD test framework — powers the features/auth.feature behavioural tests for the auth block

Alternatives considered

The following alternatives were evaluated during the v0.13.3 audit and ruled out:

DependencyAlternative consideredDecision
golang.org/x/net/htmlstdlibNo stdlib equivalent — x/net/html is the canonical Go HTML parser
golang.org/x/time/ratestdlibNo stdlib token-bucket; time.Ticker cannot express burst semantics
github.com/spf13/viperstdlib os.Getenv + manual YAMLViper provides env-override, defaults, and mapstructure in one — justified for config complexity
github.com/rs/zerologstdlib log/slog (Go 1.21+)zerolog’s zero-allocation design and Nop() no-op are better suited for high-throughput dispatch paths

Licence compatibility

All dependency licences are permissive and compatible with the project’s MIT licence:

LicenceDependencies
MITbubbletea, lipgloss, chromedp, cron/v3, zerolog, viper
ISCcoder/websocket
BSD-3-Clausemiekg/dns, gopsutil/v3, x/net, x/time, modernc.org/sqlite
Apache-2.0prometheus/client_golang, cobra, google.golang.org/grpc, genproto/googleapis/rpc

ISC, BSD-2-Clause, and BSD-3-Clause are functionally equivalent to MIT for distribution purposes. Apache-2.0 is compatible with MIT when distributing binaries (no copyleft restriction).