Salt is a Golang utility library offering a variety of packages to simplify and enhance application development. It provides modular and reusable components for common tasks, including configuration management, CLI utilities, authentication, logging, and more.
To use, run the following command:
go get github.com/raystack/salt
configUtilities for managing application configurations using environment variables, files, or defaults.
-
cli/commanderCommand execution, completion, help topics, and management tools. -
cli/printerUtilities for formatting and printing output to the terminal. -
cli/prompterInteractive CLI prompts for user input. -
cli/terminatorTerminal utilities for browser, pager, and brew helpers. -
cli/releaserUtilities for displaying and managing CLI tool versions.
-
auth/oidcHelpers for integrating OpenID Connect authentication flows. -
auth/auditAuditing tools for tracking security events and compliance.
-
server/muxgRPC-gateway multiplexer for serving gRPC and HTTP on a single port. -
server/spaSingle-page application static file handler. -
dbHelpers for database connections, migrations, and query execution.
-
observabilityOpenTelemetry initialization, metrics, and tracing setup. -
observability/loggerStructured logging with Zap and Logrus adapters. -
observability/otelgrpcOpenTelemetry gRPC client interceptors for metrics. -
observability/otelhttpclientOpenTelemetry HTTP client transport for metrics.
-
data/rqlREST query language parser for filters, pagination, sorting, and search. -
data/jsondiffJSON document diffing and reconstruction.
testing/dockertestxDocker-based test environment helpers for Postgres, Minio, SpiceDB, and more.