Directories
¶
| Path | Synopsis |
|---|---|
|
Package awsopt solves the repetitive wiring problem of configuring the aws-sdk-go-v2 library consistently across multiple AWS service clients.
|
Package awsopt solves the repetitive wiring problem of configuring the aws-sdk-go-v2 library consistently across multiple AWS service clients. |
|
Package awssecretcache solves the performance and reliability problem of repeated AWS Secrets Manager lookups in high-throughput Go services.
|
Package awssecretcache solves the performance and reliability problem of repeated AWS Secrets Manager lookups in high-throughput Go services. |
|
Package bootstrap solves the repetitive, error-prone problem of wiring together the core infrastructure of a Go service: context lifecycle, structured logging, metrics collection, OS signal handling, and graceful shutdown — all with a single function call.
|
Package bootstrap solves the repetitive, error-prone problem of wiring together the core infrastructure of a Go service: context lifecycle, structured logging, metrics collection, OS signal handling, and graceful shutdown — all with a single function call. |
|
Package config provides a production-ready configuration bootstrap for Go services built on top of Viper.
|
Package config provides a production-ready configuration bootstrap for Go services built on top of Viper. |
|
Package countrycode provides fast, reusable access to ISO-3166 country metadata.
|
Package countrycode provides fast, reusable access to ISO-3166 country metadata. |
|
Package countryphone resolves international phone number prefixes into country and regional metadata.
|
Package countryphone resolves international phone number prefixes into country and regional metadata. |
|
Package decint provides utility functions to parse and represent decimal values as fixed-point integers with a defined precision.
|
Package decint provides utility functions to parse and represent decimal values as fixed-point integers with a defined precision. |
|
Package devlake provides a Go client for the DevLake Webhook API.
|
Package devlake provides a Go client for the DevLake Webhook API. |
|
Package dnscache provides a local DNS cache that is safe for concurrent use, bounded in size, and uses single-flight request collapsing to avoid duplicate lookups.
|
Package dnscache provides a local DNS cache that is safe for concurrent use, bounded in size, and uses single-flight request collapsing to avoid duplicate lookups. |
|
Package encode provides a collection of helper functions for safe serialization and deserialization across system boundaries such as databases, queues, caches, and RPC payloads.
|
Package encode provides a collection of helper functions for safe serialization and deserialization across system boundaries such as databases, queues, caches, and RPC payloads. |
|
Package encrypt provides helpers for encrypting and decrypting data safely for transport and storage.
|
Package encrypt provides helpers for encrypting and decrypting data safely for transport and storage. |
|
Package enumbitmap provides helpers to encode and decode enumeration values as bitmaps.
|
Package enumbitmap provides helpers to encode and decode enumeration values as bitmaps. |
|
Package enumcache provides thread-safe storage and lookup for enumeration name and ID mappings.
|
Package enumcache provides thread-safe storage and lookup for enumeration name and ID mappings. |
|
Package enumdb loads enumeration sets from relational database tables into thread-safe enum caches.
|
Package enumdb loads enumeration sets from relational database tables into thread-safe enum caches. |
|
Package errutil provides small, reusable helpers for consistent error handling in Go applications.
|
Package errutil provides small, reusable helpers for consistent error handling in Go applications. |
|
Package filter provides declarative, rule-based filtering for in-memory slices.
|
Package filter provides declarative, rule-based filtering for in-memory slices. |
|
Package healthcheck provides a reusable framework for defining, executing, and aggregating service health probes.
|
Package healthcheck provides a reusable framework for defining, executing, and aggregating service health probes. |
|
Package httpclient provides a configurable outbound HTTP client with built-in trace propagation and structured request/response logging.
|
Package httpclient provides a configurable outbound HTTP client with built-in trace propagation and structured request/response logging. |
|
Package httpretrier provides configurable retry execution for outbound HTTP requests.
|
Package httpretrier provides configurable retry execution for outbound HTTP requests. |
|
Package httpreverseproxy provides a reusable reverse-proxy client built on top of net/http/httputil.ReverseProxy.
|
Package httpreverseproxy provides a reusable reverse-proxy client built on top of net/http/httputil.ReverseProxy. |
|
Package httpserver provides a configurable, production-oriented HTTP server bootstrap for Go services.
|
Package httpserver provides a configurable, production-oriented HTTP server bootstrap for Go services. |
|
Package httputil provides reusable HTTP request/response primitives for Go services built on top of net/http.
|
Package httputil provides reusable HTTP request/response primitives for Go services built on top of net/http. |
|
jsendx
Package jsendx implements an extended JSend response envelope for HTTP APIs.
|
Package jsendx implements an extended JSend response envelope for HTTP APIs. |
|
Package ipify provides a small client to resolve the current instance public IP address using the ipify service (https://www.ipify.org/).
|
Package ipify provides a small client to resolve the current instance public IP address using the ipify service (https://www.ipify.org/). |
|
Package jirasrv provides a lightweight, typed HTTP client foundation for Jira Server REST integrations.
|
Package jirasrv provides a lightweight, typed HTTP client foundation for Jira Server REST integrations. |
|
Package jwt provides an HTTP-oriented JWT authentication helper for username/password login flows.
|
Package jwt provides an HTTP-oriented JWT authentication helper for username/password login flows. |
|
Package kafka provides a pure-Go, high-level API for producing and consuming Apache Kafka messages.
|
Package kafka provides a pure-Go, high-level API for producing and consuming Apache Kafka messages. |
|
Package kafkacgo provides a high-level producer/consumer API for Apache Kafka backed by Confluent's librdkafka Go bindings.
|
Package kafkacgo provides a high-level producer/consumer API for Apache Kafka backed by Confluent's librdkafka Go bindings. |
|
Package logsrv provides a high-performance zerolog backend exposed through the standard log/slog API.
|
Package logsrv provides a high-performance zerolog backend exposed through the standard log/slog API. |
|
Package logutil provides configuration-driven logging utilities built around Go's standard log/slog package.
|
Package logutil provides configuration-driven logging utilities built around Go's standard log/slog package. |
|
Package maputil provides generic functional-style helpers for Go maps.
|
Package maputil provides generic functional-style helpers for Go maps. |
|
Package metrics defines a backend-agnostic instrumentation contract for Go services.
|
Package metrics defines a backend-agnostic instrumentation contract for Go services. |
|
opentel
Package opentel implements github.com/tecnickcom/gogen/pkg/metrics.Client using OpenTelemetry for both metrics and tracing.
|
Package opentel implements github.com/tecnickcom/gogen/pkg/metrics.Client using OpenTelemetry for both metrics and tracing. |
|
prometheus
Package prometheus implements github.com/tecnickcom/gogen/pkg/metrics.Client using the Prometheus client ecosystem.
|
Package prometheus implements github.com/tecnickcom/gogen/pkg/metrics.Client using the Prometheus client ecosystem. |
|
statsd
Package statsd implements github.com/tecnickcom/gogen/pkg/metrics.Client using the StatsD protocol.
|
Package statsd implements github.com/tecnickcom/gogen/pkg/metrics.Client using the StatsD protocol. |
|
Package mysqllock provides process-distributed mutual exclusion using MySQL's named lock primitives GET_LOCK and RELEASE_LOCK.
|
Package mysqllock provides process-distributed mutual exclusion using MySQL's named lock primitives GET_LOCK and RELEASE_LOCK. |
|
Package numtrie provides a generic, digit-indexed [trie] (prefix tree) for associating values of any type with numerical keys, with built-in support for partial/prefix matching and alphabetical (vanity) phone-number keys.
|
Package numtrie provides a generic, digit-indexed [trie] (prefix tree) for associating values of any type with numerical keys, with built-in support for partial/prefix matching and alphabetical (vanity) phone-number keys. |
|
Package paging computes all pagination metadata — current page, total pages, previous/next page numbers, and SQL OFFSET/LIMIT values — from three inputs: current page number, page size, and total item count.
|
Package paging computes all pagination metadata — current page, total pages, previous/next page numbers, and SQL OFFSET/LIMIT values — from three inputs: current page number, page size, and total item count. |
|
Package passwordhash provides OWASP-compliant password hashing and verification using the Argon2id algorithm (RFC 9106), with an optional AES-GCM encryption layer (peppered hashing) for defense in depth.
|
Package passwordhash provides OWASP-compliant password hashing and verification using the Argon2id algorithm (RFC 9106), with an optional AES-GCM encryption layer (peppered hashing) for defense in depth. |
|
Package passwordpwned checks whether a password has appeared in a known data breach, using the Have I Been Pwned (HIBP) Pwned Passwords API v3 (https://haveibeenpwned.com/API/v3#PwnedPasswords).
|
Package passwordpwned checks whether a password has appeared in a known data breach, using the Have I Been Pwned (HIBP) Pwned Passwords API v3 (https://haveibeenpwned.com/API/v3#PwnedPasswords). |
|
Package periodic schedules a task function to run repeatedly at a fixed interval, with optional random jitter and a per-invocation context timeout.
|
Package periodic schedules a task function to run repeatedly at a fixed interval, with optional random jitter and a per-invocation context timeout. |
|
Package phonekeypad converts alphabetic strings and phone number literals to their numeric equivalents on a standard 12-key telephony keypad (ITU E.161 / ITU T.9).
|
Package phonekeypad converts alphabetic strings and phone number literals to their numeric equivalents on a standard 12-key telephony keypad (ITU E.161 / ITU T.9). |
|
Package profiling bridges Go's built-in net/http/pprof profiling tool and the httprouter request router, allowing all pprof endpoints to be served through a single wildcard route without manual per-handler registration.
|
Package profiling bridges Go's built-in net/http/pprof profiling tool and the httprouter request router, allowing all pprof endpoints to be served through a single wildcard route without manual per-handler registration. |
|
Package random provides utility functions for generating random bytes, numeric identifiers, UID/UUID values, hexadecimal/base36 IDs, and configurable random strings.
|
Package random provides utility functions for generating random bytes, numeric identifiers, UID/UUID values, hexadecimal/base36 IDs, and configurable random strings. |
|
Package redact provides lightweight, regex-based redaction utilities for obscuring sensitive data before logging or debugging output is emitted.
|
Package redact provides lightweight, regex-based redaction utilities for obscuring sensitive data before logging or debugging output is emitted. |
|
Package redis provides focused helpers built on go-redis for common application workflows: key/value storage, Pub/Sub messaging, typed payload encoding, and basic connection health checks.
|
Package redis provides focused helpers built on go-redis for common application workflows: key/value storage, Pub/Sub messaging, typed payload encoding, and basic connection health checks. |
|
Package retrier provides a configurable retry engine for executing a task function with backoff, jitter, and per-attempt timeouts.
|
Package retrier provides a configurable retry engine for executing a task function with backoff, jitter, and per-attempt timeouts. |
|
Package s3 provides lightweight helpers built on the AWS SDK v2 S3 client for common bucket object operations.
|
Package s3 provides lightweight helpers built on the AWS SDK v2 S3 client for common bucket object operations. |
|
Package sfcache provides a local, thread-safe, fixed-size cache for expensive lookups with single-flight deduplication.
|
Package sfcache provides a local, thread-safe, fixed-size cache for expensive lookups with single-flight deduplication. |
|
Package slack provides a lightweight client for sending messages to Slack via Incoming Webhooks.
|
Package slack provides a lightweight client for sending messages to Slack via Incoming Webhooks. |
|
Package sleuth provides a focused Go client for the Sleuth.io API, covering the most common write-side integrations used for delivery metrics and operational signal ingestion.
|
Package sleuth provides a focused Go client for the Sleuth.io API, covering the most common write-side integrations used for delivery metrics and operational signal ingestion. |
|
Package sliceutil provides generic, allocation-conscious helpers for common slice operations and numeric dataset summarization.
|
Package sliceutil provides generic, allocation-conscious helpers for common slice operations and numeric dataset summarization. |
|
Package sqlconn solves the boilerplate and lifecycle complexity of managing a database/sql connection in long-running Go services.
|
Package sqlconn solves the boilerplate and lifecycle complexity of managing a database/sql connection in long-running Go services. |
|
Package sqltransaction solves a common reliability problem in Go database code: executing business logic inside a transaction with correct begin/commit/rollback control flow and consistent error handling.
|
Package sqltransaction solves a common reliability problem in Go database code: executing business logic inside a transaction with correct begin/commit/rollback control flow and consistent error handling. |
|
Package sqlutil solves a common SQL string-construction problem: safely quoting identifiers and string literals when generating query fragments dynamically.
|
Package sqlutil solves a common SQL string-construction problem: safely quoting identifiers and string literals when generating query fragments dynamically. |
|
Package sqlxtransaction solves a common reliability problem in Go database code: correctly handling begin/commit/rollback control flow around business logic executed inside a sqlx transaction.
|
Package sqlxtransaction solves a common reliability problem in Go database code: correctly handling begin/commit/rollback control flow around business logic executed inside a sqlx transaction. |
|
Package sqs solves the operational friction of using AWS SQS directly from the aws-sdk-go-v2 in application code.
|
Package sqs solves the operational friction of using AWS SQS directly from the aws-sdk-go-v2 in application code. |
|
Package stringkey solves the practical problem of deriving a stable, compact, non-cryptographic key from multiple text fields for fast lookup, deduplication, and idempotency-style identifiers.
|
Package stringkey solves the practical problem of deriving a stable, compact, non-cryptographic key from multiple text fields for fast lookup, deduplication, and idempotency-style identifiers. |
|
Package stringmetric provides string distance functions for approximate text matching, comparison, and fuzzy search.
|
Package stringmetric provides string distance functions for approximate text matching, comparison, and fuzzy search. |
|
Package strsplit solves the common text-wrapping problem of splitting strings into bounded-size chunks without breaking Unicode characters and while trying to keep human-readable boundaries (spaces, punctuation, and line breaks).
|
Package strsplit solves the common text-wrapping problem of splitting strings into bounded-size chunks without breaking Unicode characters and while trying to keep human-readable boundaries (spaces, punctuation, and line breaks). |
|
Package testutil solves repetitive test setup problems that appear across Go codebases: forcing I/O failures on demand, capturing process output, bootstrapping HTTP handlers, and normalizing time-variant values in assertions.
|
Package testutil solves repetitive test setup problems that appear across Go codebases: forcing I/O failures on demand, capturing process output, bootstrapping HTTP handlers, and normalizing time-variant values in assertions. |
|
Package threadsafe solves a small but important design problem in concurrent Go code: how to write reusable, goroutine-safe data structures and helpers without hard-coding a concrete lock type everywhere.
|
Package threadsafe solves a small but important design problem in concurrent Go code: how to write reusable, goroutine-safe data structures and helpers without hard-coding a concrete lock type everywhere. |
|
tsmap
Package tsmap solves the common concurrency problem of safely operating on Go maps shared across multiple goroutines without repeatedly writing lock/unlock boilerplate at every call site.
|
Package tsmap solves the common concurrency problem of safely operating on Go maps shared across multiple goroutines without repeatedly writing lock/unlock boilerplate at every call site. |
|
tsslice
Package tsslice solves the common concurrency problem of safely operating on Go slices shared across multiple goroutines without repeating lock boilerplate around every access.
|
Package tsslice solves the common concurrency problem of safely operating on Go slices shared across multiple goroutines without repeating lock boilerplate around every access. |
|
Package timeutil solves the recurring friction of marshaling time values to and from JSON in Go services.
|
Package timeutil solves the recurring friction of marshaling time values to and from JSON in Go services. |
|
Package traceid solves the distributed-tracing correlation problem at the service boundary: capturing a request-scoped trace ID from an inbound HTTP header, propagating it through the context.Context for the lifetime of the request, and writing it back into outbound HTTP headers when calling downstream services — all without coupling business logic to any particular tracing framework.
|
Package traceid solves the distributed-tracing correlation problem at the service boundary: capturing a request-scoped trace ID from an inbound HTTP header, propagating it through the context.Context for the lifetime of the request, and writing it back into outbound HTTP headers when calling downstream services — all without coupling business logic to any particular tracing framework. |
|
Package typeutil solves a handful of small but recurring type-handling problems in Go generics code: reliably detecting nil through interfaces, obtaining zero values generically, dereferencing pointers safely, and converting booleans to integers without a branch in the generated assembly.
|
Package typeutil solves a handful of small but recurring type-handling problems in Go generics code: reliably detecting nil through interfaces, obtaining zero values generically, dereferencing pointers safely, and converting booleans to integers without a branch in the generated assembly. |
|
Package uhex solves the performance problem of converting unsigned integers to their hexadecimal string representation in hot paths — trace ID generation, log formatting, binary protocol encoding — where the allocations and reflection overhead of fmt.Sprintf or encoding/hex are unacceptable.
|
Package uhex solves the performance problem of converting unsigned integers to their hexadecimal string representation in hot paths — trace ID generation, log formatting, binary protocol encoding — where the allocations and reflection overhead of fmt.Sprintf or encoding/hex are unacceptable. |
|
Package validator solves two recurring problems with struct validation in Go services: the gap in domain-specific validation rules missing from general libraries, and the cost of turning raw validation errors into user-readable messages.
|
Package validator solves two recurring problems with struct validation in Go services: the gap in domain-specific validation rules missing from general libraries, and the cost of turning raw validation errors into user-readable messages. |
|
Package valkey solves the friction of integrating Valkey (https://valkey.io) — the open-source, Redis-compatible in-memory data store — into a Go service.
|
Package valkey solves the friction of integrating Valkey (https://valkey.io) — the open-source, Redis-compatible in-memory data store — into a Go service. |
Click to show internal directories.
Click to hide internal directories.