Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. REST
  3. go-relax

go-relax

MITGov1.0.0

A Go framework for building fast, complete RESTful APIs with built-in HATEOAS, filters, and correct HTTP semantics.

GitHubGitHub
153 stars9 forks0 contributors

What is go-relax?

Go-Relax is a framework for building RESTful APIs in Go that helps developers create web services following REST architectural constraints and correct HTTP semantics. It provides tools for implementing HATEOAS, content negotiation, authentication, caching, and rate limiting out of the box. The framework aims to simplify API development while ensuring adherence to REST best practices inspired by platforms like Heroku and GitHub.

Target Audience

Go developers building RESTful web services, backend engineers creating APIs with strict REST compliance, and teams needing production-ready API frameworks with built-in filters.

Value Proposition

Developers choose Go-Relax for its comprehensive "batteries included" approach, offering a full suite of built-in filters and HATEOAS support without external dependencies. Its performance optimizations like trie-based routing and sync.Pool make it efficient for high-load scenarios.

Overview

Framework for building RESTful API's in Go

Use Cases

Best For

  • Building RESTful APIs in Go with strict adherence to REST constraints
  • Implementing HATEOAS hypermedia controls in web services
  • Creating APIs with built-in authentication, CORS, and rate limiting
  • Developing high-performance APIs using efficient routing and resource pooling
  • Building APIs that require mixed media type support (JSON/XML)
  • Prototyping or production APIs with comprehensive filtering and security features

Not Ideal For

  • Teams building GraphQL or gRPC APIs where REST constraints are not needed
  • Projects requiring immediate JSON-API support or JSON-Schema validation
  • Developers creating simple HTTP servers without HATEOAS or advanced filtering

Pros & Cons

Pros

HATEOAS Ready

Includes built-in Web Linking headers for hypermedia controls, as shown in the Hello World example with automatic Link headers for self and index relations.

Comprehensive Filter Suite

Comes with production-ready filters for content negotiation, authentication, CORS, ETag caching, GZip compression, logging, security, and rate limiting, reducing external dependencies.

Performance Optimizations

Uses a trie with regexp matching for efficient routing and sync.Pool for resource management under heavy load, ensuring good performance in high-traffic scenarios.

Flexible Media Handling

Supports JSON by default with optional XML, and handles mixed request/response encodings, making it versatile for different client requirements.

Cons

Incomplete Feature Set

The README lists upcoming filters like JSON-API and JSON-Schema support as not yet implemented, which could delay projects needing these features.

Framework Overhead

As a 'batteries included' framework, it adds complexity and potential bloat for APIs that don't require all built-in filters, compared to minimal alternatives.

Steep Learning Curve

Adhering to strict REST principles and utilizing the comprehensive filter suite requires a deeper understanding of HTTP semantics and framework architecture.

Frequently Asked Questions

Quick Stats

Stars153
Forks9
Contributors0
Open Issues0
Last commit8 months ago
CreatedSince 2014

Tags

#api-gateway#rest-api#api-development#hateoas#golang#microservices#web-framework#backend#api-rest#go#restful

Built With

G
Go

Included in

REST3.9k
Auto-fetched 1 day ago

Related Projects

go-restfulgo-restful

package for building REST-style Web Services using Go

Stars5,114
Forks675
Last commit9 days ago
go-json-restgo-json-rest

A quick and easy way to setup a RESTful JSON API

Stars3,484
Forks371
Last commit5 years ago
sleepysleepy

rest for go

Stars669
Forks51
Last commit9 years ago
gocrudgocrud

Go framework to simplify CRUD of structured data using Graph operations

Stars306
Forks23
Last commit7 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub