emicklei/go-restful

package for building REST-style Web Services using Go

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 49 minutes ago
Added to GitGenius on September 13th, 2026
Created on November 15th, 2012
Open Issues & Pull Requests: 2 (+0)
GitHub issues: Enabled
Number of forks: 678
Total Stargazers: 5,115 (+0)
Total Subscribers: 144 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 15.9 hours
Mean response time: 22.7 hours
90th percentile: 3.5 days
Tracked items: 8

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • v4 (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

go-restful is a package for building REST-style web services in Go.

The package addresses the need to map HTTP methods explicitly to CRUD operations according to REST principles. It provides routing that connects requests to handler functions, with support for path parameters in flexible formats including static elements, dynamic parameters, regular expressions, and custom verbs. The tool offers both a fast default routing algorithm and an alternative JSR311-based algorithm. Request and response handling is built around reading and writing structs to JSON or XML, with customizable encoding through EntityReaderWriter registration.

Developers should choose this tool when building REST APIs in Go where explicit HTTP method semantics matter. It suits projects that need flexible URL path matching, including support for prefix and suffix patterns around variables. The package includes filters for request-response interception at service or route level, automatic CORS handling, content encoding with gzip and deflate, and panic recovery with customizable error responses. It integrates with Swagger UI through a companion package for API documentation. The tool is particularly useful when you need fine-grained control over routing behavior, request-scoped variables via attributes, or multiple containers serving different HTTP endpoints.

The project maintains active engagement with its codebase through regular refinements to routing and caching mechanisms. Development includes deliberate feature additions such as path token and custom verb cache control options. The maintainers respond to edge cases and performance considerations, as evidenced by hooks for customizing router algorithms, panic recovery, JSON decoding, logging, compression, and serialization. The project provides comprehensive examples demonstrating full API implementations and maintains documentation of customization points throughout the codebase.