Echo VS httprouter

Compare Echo vs httprouter and see what are their differences.

Our great sponsors
  • Scout APM - A developer's best friend. Try free for 14-days
  • Nanos - Run Linux Software Faster and Safer than Linux with Unikernels
  • SaaSHub - Software Alternatives and Reviews
Echo httprouter
36 11
21,148 13,415
1.7% -
8.1 0.0
5 days ago 18 days ago
Go Go
MIT License BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Echo

Posts with mentions or reviews of Echo. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-11-27.
  • Geofence your self-hosted API's
    6 projects | dev.to | 27 Nov 2021
    Since I'm using echo as the web framework to control my decorations, I was able to implement some pretty simple middleware that rejects POST requests from IP addresses that aren't within close proximity to mine with a 403 status code.
  • Ask HN: Simplest stack to build web apps in 2021?
    17 projects | news.ycombinator.com | 22 Nov 2021
    For backend I'd say -> Golang, PostgreSQL, Redis. I've just worked with Vue.js but I've seen some of the React codebases and don't really appreciate that complexity. Vue does a far better job and simplifying things.

    With Golang, you actually don't need a mega framework to get started, you can use small libraries that will do the job for you without doing any magic behind the scenes. (Like, for sure you can use echo[0] but you would probably be happy with mux[1] and it's middlewares itself). And it's not uncommon in Go codebases to repeat yourself. I'd argue that's a much better paradigm than polluting your codebase with 10k indirect dependencies, the garbage that is the Node.js ecosystem.

    [0]: https://echo.labstack.com/

  • 4 Things to Consider When Choosing a Go API Framework
    5 projects | dev.to | 16 Nov 2021
    This can be extremely helpful if you just want to get going and start writing the business logic of your application without having to worry about some of these implementation details however it does come with a price: you're mostly stuck with the framework's choices. Don't like the way that echo formats logs? Tough. Want to use a different router than the one chosen by buffalo? Good Luck.
  • Would it be better to use Frameworks or not ?
    3 projects | reddit.com/r/golang | 25 Oct 2021
    I tried once to only use the standard library for a REST-like api and ended removing all that code and replacing it with a framework (Echo in my case) once i noticed that all that those thousands lines of code that i wrote to handle errors, requests, responses, validations, etc were almost the same to the ones you could find it those frameworks.
  • Which web framework to learn?
    6 projects | reddit.com/r/golang | 20 Oct 2021
    https://echo.labstack.com is fantastic
  • Shit post
    1 project | reddit.com/r/shitposting | 19 Oct 2021
  • Do you guys use frameworks with Go for backend development?
    7 projects | reddit.com/r/golang | 8 Oct 2021
    For REST, I use Echo which bills itself as a Web Framework. So in that sense, yes. In the sense of something overarching like Java's Spring Framework, no.
  • BunRouter: Zero allocations HTTP router for Go
    2 projects | reddit.com/r/golang | 7 Oct 2021
    It's looks exactly like Echo? Even the landing page is similar: https://echo.labstack.com/
  • I can not find where this log is happening...
    1 project | reddit.com/r/golang | 29 Sep 2021
    It’s Echo itself that logs incoming requests. https://github.com/labstack/echo/issues/1017
  • Go, Kafka and gRPC clean architecture CQRS microservices with Jaeger tracing πŸ‘‹πŸ§‘β€πŸ’»
    14 projects | dev.to | 29 Aug 2021
    In this article let's try to create closer to real world CQRS microservices with tracing and monitoring using: πŸš€ Kafka as messages broker gRPC Go implementation of gRPC PostgreSQL as database Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MongoDB Web and API based SMTP testing Redis Type-safe Redis client for Golang swag Swagger for Go Echo web framework

httprouter

Posts with mentions or reviews of httprouter. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-10-07.
  • Swagger-UI gives a 404 not found error when using Julien Schmidt's HTTP router
    1 project | reddit.com/r/golang | 27 Oct 2021
    I'm trying to set up the swagger using julien schmidt's HTTP router, but the setup returns a 404 Error Not Found every time. Anything that I'm missing out on here. Link to the router: https://github.com/julienschmidt/httprouter
  • HttpRouter
    1 project | reddit.com/r/devopskhan | 27 Oct 2021
  • BunRouter: Zero allocations HTTP router for Go
    2 projects | reddit.com/r/golang | 7 Oct 2021
    As for the first question, see https://github.com/julienschmidt/httprouter/issues/73 and the lack of middlewares.
  • Go for Backend development
    4 projects | reddit.com/r/golang | 6 Sep 2021
    Pass on the frameworks at first. just use the std library's net/http package and maybe a really basic router like julien schmidt's httprouter(https://github.com/julienschmidt/httprouter) to do your requests and use pgx(https://github.com/jackc/pgx) for postrgres.
  • What are your favorite packages to use?
    55 projects | reddit.com/r/golang | 15 Aug 2021
    httprouter for routing. Several years ago (5 years ago maybe) when I started using Go, I always tried to use the best and fastest packages and this package boasts itself as the fastest router for Go. Fast forward to today, I'm not sure if it still the fastest around, but it's stable and I've never had issues with it, so I keep using it.
  • Noob here. Need recommendation for best REST API framework.
    12 projects | reddit.com/r/golang | 19 Jul 2021
    I use (and love) gorilla/mux as well as julienschmidt/httprouter. They are both on the "lightweight" end of the spectrum. Nothing (to my knowledge) beats the performance of julienschmidt/httprouter, but routing isn't going to be your main bottleneck anyway, so I don't think it matters too much. If you wanted to get started with gorilla, gowebexamples.com is a nice starting point.
  • What's your favourite (go) web framework?
    5 projects | reddit.com/r/golang | 13 Jun 2021
    For me, the middle ground is best, chi, gin, httprouter are the sweetspot. But that's based on skills, style, and requirements (and experience - I've used all the ones I have mentioned in anger)
  • Networking with go
    2 projects | reddit.com/r/golang | 3 Apr 2021
  • What should i pay attention to when building web server that should hold long connections
    2 projects | reddit.com/r/golang | 24 Mar 2021
    therefore, use the gorilla mux router but don't use gorilla sessions, just build your server as being a request based api. If you want to build a chat application or a video streaming platform, then just build your own concept of a session (gorilla is great don't get me wrong, but it's a dependency). I agree with not using gorilla session as it's unnecessarily heavy and it sounds like OP could get away with returning a token to the clients which they'll set as a http header on every request, if sessions are even needed. That being said gorilla mux is also a dependency and pretty much the worst performing router out there. Use the stdlib mux or if you need something more sofisticated I'd recommend httprouter or chi but chi had a semver issue recently and the community was pretty pissed about it so maybe not chi. Using the gorilla mux is also a dependency.
  • Choosing building blocks to move faster
    4 projects | dev.to | 1 Feb 2021
    Another common reason to decide against using an existing component is when it doesn't satisfy your requirements. For this project, I needed to prioritize the performance of the web server, and so I knew I needed an HTTP framework that performed well across a number of benchmarks, but I also needed some unusual capabilities such as being able to swap out the router in real-time. In the end, I decided on a hybrid approach for the web server, choosing to build a custom framework around the well-loved httprouter, which granted the majority of what I needed, and had some extremely well thought-out integration points that made it easy for me to build on top of it. In the case of the message bus, I also had a requirement of decentralization, which the majority of available projects are not.

What are some alternatives?

When comparing Echo and httprouter you can also consider the following projects:

Gin - Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

mux - A powerful HTTP router and URL matcher for building Go web servers with 🦍

chi - lightweight, idiomatic and composable router for building Go HTTP services

Fiber - ⚑️ Express inspired web framework written in Go

Iris - The fastest HTTP/2 Go Web Framework. AWS Lambda, gRPC, MVC, Unique Router, Websockets, Sessions, Test suite, Dependency Injection and more. A true successor of expressjs and laravel | θ°’θ°’ https://github.com/kataras/iris/issues/1329 |

Beego - beego is an open-source, high-performance web framework for the Go programming language.

go-kit - A standard library for microservices.

Revel - A high productivity, full-stack web framework for the Go language.

Buffalo - Rapid Web Development w/ Go

fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http