go-querystring is a lightweight Go library developed by Google for encoding Go structs into URL query strings. It simplifies the process of constructing URLs with typed parameters, offering a clean, type-safe approach to building query strings programmatically. The library’s query package exposes a single Values() function that converts struct fields (tagged with url tags) into properly encoded query parameters. It is particularly useful for APIs or HTTP clients that represent query parameters as structs—such as in the go-github client library. Each struct field can be annotated with a url:"name" tag to specify the query key. The encoder supports standard Go data types (strings, numbers, booleans, slices, etc.) and handles formatting and escaping automatically.
Features
- Ideal for building API clients or handling HTTP query parameters
- Type-safe alternative to manually building query strings
- Automatically escapes and formats values correctly
- Uses struct tags (url:"key") for mapping field names
- Supports standard Go data types and slices
- Encodes Go structs into URL query strings