Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. Siesta

Siesta

MITGov1.0.0

A composable framework for writing HTTP handlers in Go with typed URL parameters and middleware chains.

GitHubGitHub
347 stars15 forks0 contributors

What is Siesta?

Siesta is a Go framework for building composable HTTP handlers. It provides a uniform approach to middleware and handlers, supporting typed URL parameters, context passing, and service-based routing to simplify the development of organized HTTP services.

Target Audience

Go developers building HTTP services or APIs who need a lightweight, composable framework for structuring middleware and handlers with type-safe routing.

Value Proposition

Developers choose Siesta for its emphasis on composition and simplicity, treating middleware and handlers uniformly with a single function signature, and for its utilities like typed URL parameters that enhance type safety over alternatives.

Overview

Composable framework for writing HTTP handlers in Go.

Use Cases

Best For

  • Building HTTP services in Go where middleware and handlers need to share the same function signature for consistency.
  • Organizing HTTP routing with service-based structures rooted at specific base URIs.
  • Passing contextual data (like timestamps or user information) through middleware chains using a shared Context.
  • Implementing type-safe URL parameters in routes, similar to Go's flag package.
  • Composing multiple handlers and middleware into single units using siesta.Compose for reusable logic.
  • Integrating existing http.Handler implementations with a composable framework without distinction from custom handlers.

Not Ideal For

  • Projects needing a full-stack web framework with built-in templating, database ORM, or session management.
  • Teams that require active community development and frequent feature updates, as Siesta's contribution model discourages new features.
  • Large-scale applications relying on extensive third-party middleware libraries, due to Siesta's smaller ecosystem compared to alternatives like Gin or Echo.
  • Use cases where minimal abstraction or zero-dependency is preferred, as Siesta adds its own layer over Go's standard net/http package.

Pros & Cons

Pros

Uniform Handler Composition

Middleware and handlers share the same function signature, enabling easy chaining with siesta.Compose, as shown in the simple example where timestamper and timeHandler are composed.

Type-Safe URL Parameters

Provides utilities similar to Go's flag package for managing typed route variables, reducing runtime errors in parameter parsing, referenced in the params example.

Efficient Context Passing

The Context argument allows data like timestamps to be passed through middleware chains, demonstrated in the timestamper handler that sets and retrieves values.

Service-Based Organization

Uses the Service type to structure middleware and handlers under a base URI, improving modularity and routing clarity, as seen in the main example.

Cons

Limited Development Activity

The README states that pull requests for new features are rejected, recommending forking instead, indicating potential stagnation and limited future enhancements.

Missing Built-in Features

Lacks common web framework features such as authentication helpers, input validation, or templating, requiring additional manual implementation or third-party libraries.

Smaller Ecosystem

Compared to popular frameworks like Gin or Echo, Siesta has fewer third-party middleware options and community tools, which can increase development overhead for complex needs.

Frequently Asked Questions

Quick Stats

Stars347
Forks15
Contributors0
Open Issues0
Last commit2 years ago
CreatedSince 2014

Tags

#web-server#http-framework#go#middleware#routing

Built With

G
Go

Included in

Go169.1k
Auto-fetched 18 hours ago

Related Projects

ChiChi

lightweight, idiomatic and composable router for building Go HTTP services

Stars22,573
Forks1,136
Last commit18 days ago
muxmux

Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with 🦍

Stars21,831
Forks1,889
Last commit1 year ago
httprouterhttprouter

A high performance HTTP request router that scales well

Stars17,131
Forks1,463
Last commit2 years ago
webweb

Go Router + Middleware. Your Contexts.

Stars1,524
Forks117
Last commit5 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