Package configr provides a simple, format-agnostic, hot-reloading configuration loader for go applications.
Package blit is a pragmatic TUI toolkit for shipping Go CLI tools fast. It wraps Bubble Tea and Lip Gloss with reusable components (Table, ListView, Tabs, Picker, Form, Tree, LogViewer), a layout engine (DualPane, HBox, VBox, Split), a keybinding registry with auto-generated help, a dark/light theme system with hot-reload, and built-in binary self-update. Quick start: See https://blitui.github.io/blit/ for guides and examples. Package blit provides TUI components and update utilities. Cosign signature verification — implementation notes: We deliberately avoid the full sigstore/cosign library (github.com/sigstore/cosign) because it pulls in hundreds of transitive dependencies (OCI registry clients, Fulcio/Rekor TLS stacks, OIDC flows) that would bloat every consumer binary. Instead we implement the narrow subset that covers the common offline case: a detached ed25519 signature over the raw asset bytes, stored as a <asset>.sig release attachment and signed with `cosign sign-blob --key <ed25519.key>`. The corresponding public key (PEM or bare base64) is embedded in UpdateConfig. If CosignPublicKey is empty the verification step is skipped entirely, keeping the feature strictly opt-in and zero-cost for existing consumers.
Package flume provides a dynamic pipeline factory for pipz that enables schema-driven pipeline construction with hot-reloading capabilities. Flume allows you to define pipelines using declarative YAML/JSON schemas instead of imperative code. It supports registering reusable processors, predicates, and conditions that can be composed into complex pipelines through configuration rather than compilation. Key features: Basic usage: Channel Integration: Flume supports channel integration for stream termination nodes. Channels act as terminal endpoints for synchronous pipelines:
Package lemonfig provides reactive, hot-reloadable configuration for Go applications. It uses Viper under the hood and provides Val handles that always return the latest config value. When config reloads, all derived values are atomically recomputed and swapped in — including heavy resources like DB pools and HTTP clients.
Gebug is a tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. The implementation is based on utilizing Docker and Docker-Compose to manage the debugging environment. In order to get a consistent and clean environment, the application build is taking place inside a Docker container. This make the debugging process agnostic to the host's libraries and tools versions. For instance, you can choose to work a specific version of Go on your host, but use another one when debugging your application. During the `init` process, the user sets the desired configuration to the project including Docker base, environment variables and expose ports. When the user runs `start` (unless explicitly asked) a `Dockerfile` and `docker-compose.yml` with the relevant configuration including one-direction source files synchronization between the host and the runtime container and auto-build on each change detected. Configurations Notes & Tips
Package flume provides a dynamic pipeline factory for pipz that enables schema-driven pipeline construction with hot-reloading capabilities. Flume allows you to define pipelines using declarative YAML/JSON schemas instead of imperative code. It supports registering reusable processors, predicates, and conditions that can be composed into complex pipelines through configuration rather than compilation. Key features: Basic usage: Channel Integration: Flume supports channel integration for stream termination nodes. Channels act as terminal endpoints for synchronous pipelines:
The library supports three QoS levels based on WRP QualityOfService field: QoS 0-24 (Low Priority): Fire-and-forget delivery. Messages are dropped if the buffer is full. Never blocks the caller. QoS 25-74 (Medium Priority): Asynchronous delivery with automatic retries. Waits if buffer is full. Returns Queued outcome. QoS 75-99 (High Priority): Synchronous delivery with broker confirmation. Blocks until acknowledged. Returns Accepted or Failed outcome. Messages are routed to Kafka topics based on configurable patterns that match against the WRP event type extracted from the Destination field: The library supports multiple topic selection strategies: The library provides framework-agnostic observability via event listeners and logging (using franz-go's kgo.Logger interface for flexibility): The library supports hot-reload of routing rules, compression settings, and headers without requiring a restart: The Publisher type is safe for concurrent use by multiple goroutines. All methods (Start, Stop, Produce, UpdateConfig, BufferedRecords) can be called concurrently without external synchronization. The library is optimized for high-throughput message publishing: For complete documentation, see the README and specification documents in the specs/ directory. Example demonstrates basic usage of the wrpkafka publisher. Example_bufferMonitoring demonstrates querying buffer state. Example_dynamicConfiguration demonstrates runtime configuration updates. Example_errorHandling demonstrates typed error handling. Example_headers demonstrates static headers and WRP field extraction. Example_observability demonstrates event listeners for metrics collection. Example_shardingDeviceID demonstrates device ID-based sharding for consistent partitioning. Example_shardingMetadata demonstrates metadata field-based sharding. Example_shardingRoundRobin demonstrates round-robin sharding across multiple topics. Example_topicRouting demonstrates pattern-based topic routing.
Package config provides centralized configuration management for ncore applications using Viper with support for multiple formats, environment variables, and hot-reloading. This package manages application configuration including: Load configuration from file: Load with custom path: Supports YAML, JSON, and TOML formats. Example YAML: Override config values with environment variables using underscores: Environment variables take precedence over file configuration. Watch configuration file for changes: The package provides sensible defaults for all settings: All helper functions (getDurationOrDefault, getIntOrDefault, etc.) automatically fall back to defaults when values are not specified. The package exports Wire provider sets for dependency injection: Use with Wire for automatic configuration wiring in applications.
Package configx provides convenience functions for building configuration sources. Overview: Usage: Package configx provides unified configuration management with hot reloading. Overview: Usage: Package configx provides configuration source implementations. Overview: Usage:
Package config là thư viện quản lý cấu hình (configuration) hiện đại, linh hoạt và mở rộng cho ứng dụng Go, dựa trên nền tảng thư viện Viper. Package config cung cấp wrapper cho thư viện Viper nổi tiếng, đồng thời mở rộng tính năng và chuẩn hóa API để dễ dàng tích hợp vào các ứng dụng thông qua Dependency Injection. Thư viện này thiết kế nhằm tối ưu quy trình quản lý cấu hình, đảm bảo tính nhất quán và linh hoạt cho các ứng dụng Go hiện đại. Manager: Interface chính để tương tác với hệ thống cấu hình, cung cấp các phương thức để truy xuất và quản lý cấu hình, đồng thời bổ sung các tiện ích so với Viper gốc. ServiceProvider: Implementation của di.ServiceProvider để tích hợp với DI container, cho phép đăng ký và cấu hình tự động cho Manager. Tuân thủ đầy đủ interface di.ServiceProvider với các phương thức Register(), Boot(), Requires(), và Providers(). - Hỗ trợ đa dạng định dạng cấu hình: YAML, JSON, TOML, HCL, INI, properties, dotenv - Tự động đọc từ biến môi trường (Environment Variables) - Hot reload: tự động cập nhật khi file cấu hình thay đổi - Phân cấp cấu hình với hỗ trợ đầy đủ cho dot notation (ví dụ: "database.host") - Kiểu dữ liệu phong phú với hỗ trợ unmarshalling vào struct - Cấu hình mặc định và override thông qua nhiều nguồn - API đồng nhất, safe type với pattern return value, ok cho mọi kiểu dữ liệu - Tích hợp với DI container thông qua ServiceProvider Package này giúp nhất quán hóa quản lý cấu hình trong ứng dụng Go, tận dụng sức mạnh của Viper và bổ sung các tính năng hữu ích cho ứng dụng hiện đại. Module này tương thích đầy đủ với go.fork.vn/di từ phiên bản v0.1.2 trở lên, cài đặt đầy đủ interface ServiceProvider với các phương thức Register, Boot, Requires và Providers. - Cập nhật để tương thích với go.fork.vn/di v0.1.2 - Thay đổi Container interface từ *di.Container thành di.Container - Cải thiện documentation và test coverage - Tối ưu performance và stability
Package autoswap provides a generic hot-reloader for file- or directory-based resources. It watches filesystem changes, detects content updates via a SHA-256 hash, and atomically swaps in new parsed values of an arbitrary type T. It supports debounced file events, versioning, and user-defined hooks.
Package leaf provides with utilities to create the leaf CLI tool. It includes watcher, filters and commander which watch files for changes, filter out required results and execute external commands respectively. The package comes with utilities that can aid in creating a hot-reloader with a simple go program. Let's look at an example where the watcher watches the `src/` directory for changes and for any changes builds the project.
Package certwatcher provides the ability to hot-reload TLS certificates without downtime.
Package make provides a program to build gotrino web apps. There are two modes: a live development server with hot reloading and a conventional build command for usual deployment. Actually, there is nothing special or magic involved and everything could just be done with a normal Makefile, but this way it is just more reliable between platforms and probably more maintainable.
Package dynconfig provides dynamic configuration loading with automatic file watching and hot reload capabilities. The package offers type-safe configuration loading from various file formats (JSON, XML, text) with automatic reloading when files change, environment variable merging, and flexible error handling through callbacks. Load a JSON configuration file with automatic watching: Load configuration with environment variable merging: Use callbacks for custom behavior during the configuration lifecycle: 1. No recovery (fail on error): 2. Fallback configuration: 3. Panic on error: See the individual functions for more details and examples.
Package grace use to hot reload Description: http://grisha.org/blog/2014/06/03/graceful-restart-in-golang/ Usage: import( )
Package typescript provides a typescript compiler with hot-reloader and optionally a cloud-based editor, called 'alm-tools'. typescript (by microsoft) and alm-tools (by @basarat) have their own (open-source) licenses the tools are not used directly by this adaptor, but it's good to know where you can find the software.
Package live provides some types and functions designed for plugin hot reload, which solves the problem that the same type in different versions of a plugin are actually not the same at runtime.