goroute
go-kit
Our great sponsors
goroute | go-kit | |
---|---|---|
0 | 28 | |
8 | 24,458 | |
- | 0.9% | |
0.0 | 6.0 | |
about 3 years ago | 28 days ago | |
Go | Go | |
MIT License | MIT License |
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.
goroute
We haven't tracked posts mentioning goroute yet.
Tracking mentions began in Dec 2020.
go-kit
-
What's the best dependency injection framework / methodology for Golang for the enterprise?
My company uses go-kit
-
Best up-to-date Golang book
For reference my company Go projects are built with (go-kit)[https://gokit.io/] design patterns.
-
FRAMEWORKS IN GOLANG.
5. kit. The kit framework is a programming toolkit for building robust, reliable, and maintainable microservices in Golang. It is a collection of packages and best practices that offer businesses of all sizes a thorough, reliable, and trustworthy way to create microservices. Go is a fantastic general-purpose language, but microservices need some specialized assistance. As a result, the kit framework offers infrastructure integration, system observability, and Remote Procedure Call (RPC) safety. Golang is a first-class language for creating microservices in any organization thanks to its composition of numerous closely related packages that together form an opinionated framework for building substantial Service-Oriented Architectures (SOAs).It was created with interoperability in mind, and developers are free to select the platforms, databases, components, and architectural styles that best suit their needs. The disadvantage of using go-kit is that it has a high overhead for adding API to the service because of how heavily it relies on interfaces. Documentation Link: https://github.com/go-kit/kit
-
GitHub - gookit/ini: 📝 Go INI config management. support multi file load, data override merge. parse ENV variable, parse variable reference. Dotenv file parse and loader.
At first I was confused but this GitHub user/org is completely different from the massively popular go-kit/kit https://github.com/go-kit/kit
-
Go Micro: a standard library for distributed systems development
https://github.com/go-kit/kit#related-projects
go-micro seems like it does a bit too much, like service discovery and balancing within the framework when that's likely better handled by an Envoy/Istio.
see also: https://github.com/go-kit/kit
Or see also: https://medium.com/code-zen/why-i-don-t-use-go-web-framework... (or any of the dozens of blogs of people indicating why you dont need a framework for go)
-
Real World Micro Services
I think the more interesting aspect of this is the framework being used: https://github.com/micro/micro
I haven't dug into it at all yet, but at a glance it looks like it's aiming to do something similar to what Go kit (https://gokit.io/) or Finagle (https://twitter.github.io/finagle/) does, where it gives you a nice abstraction for defining your "service" and then handles all the supplementary aspects (service discovery, serialization, retry/circuit breaker logic, rate limiting, hooks for logging, tracing, and metrics, etc) so you don't have to build those from scratch every time.
I don't know if any of those other frameworks could really be considered very "successful" outside the original organizations they were built for (it seems like the industry has bet more on service meshes and API gateway products), but I'd probably be more inclined to start with one of them than making a new framework.
-
Learning a new language, or how I gained familiarity with Go
I wish more people encouraged people new to Go to look at some of the targets you'll arrive at so that people don't come into Go thinking the end result is going to be using the Go version of Laravel, Spring, or Rails.
Go has some interesting ideas about models/ORM's, OpenAPI, validation, templates, embedded binary files and other things. When types mater, like in Go, code generation is often very important as well which isn't as common in scripting languages.
https://goa.design/ for grpc/rest servers based on specs
https://gokit.io/ for microservices
https://github.com/mustafaakin/gongular for object-based validation
https://sqlc.dev/ for generated models based on SQL (skip the whole idea of an ORM)
https://github.com/jmoiron/sqlx for more traditional object population from SQL
https://pkg.go.dev/errors for an understanding of wrapping errors and nested error causes
https://gqlgen.com/ for auto-generated revolvers based on GraphQL schemas
https://pkg.go.dev/io#Reader all the Reader/Writer/Closer's as they are everywhere since Go cares about performance and therefore streaming abilities. No more string passing.
-
Why We Switched from Python to Go
I always wondered why Stream was using Python instead of Go. Glad to hear they are able to make the change now. There is no comparison between Go and my Python or Node.js services when it comes to data processing or pipelines.
> Revel, Iris, Echo, Macaron and Buffalo seem to be the leading contenders.
If you're talking about MVC-era frameworks these are fine. However a lot of companies are using Go for microservices so I would highly recommend looking at https://goa.design/ and https://gokit.io/
-
A Command-line tool to statistics the GitHub repositories
$ github-compare zeromicro/go-zero go-kratos/kratos asim/go-micro go-kit/kit ┌─────────────────────────┬─────────────────────┬───────────────────────┬──────────────────────┬──────────────────┐ │ METRICS │ ZEROMICRO/GO-ZERO │ GO-KRATOS/KRATOS │ ASIM/GO-MICRO │ GO-KIT/KIT │ ├─────────────────────────┼─────────────────────┼───────────────────────┼──────────────────────┼──────────────────┤ │ 🏠 homepage │ https://go-zero.dev │ https://go-kratos.dev │ https://go-micro.dev │ https://gokit.io │ │ 🌎 language │ Go │ Go │ Go │ Go │ │ 📌 license │ MIT License │ MIT License │ Apache License 2.0 │ MIT License │ │ ⏰ age │ 655 days │ 1231 days │ 2688 days │ 2668 days │ │ 🌟 stars │ 17778(27/d) │ 17856(14/d) │ 18233(6/d) │ 23084(8/d) │ │ 📊 latestDayStarCount │ 33 (up) │ 7 (down) │ 2 (down) │ 10 (up) │ │ 📉 latestWeekStarCount │ 227 (up) │ 64 (down) │ 31 (down) │ 44 (down) │ │ 📈 latestMonthStarCount │ 916 │ 531 │ 176 │ 235 │ │ 👏 forks │ 2520(3/d) │ 3446(2/d) │ 2087(0/d) │ 2315(0/d) │ │ 👀 watchers │ 266 │ 424 │ 510 │ 690 │ │ 💪 issues │ 50/741 │ 51/793 │ 76/914 │ 35/548 │ │ 💯 pull requests │ 13/1155 │ 10/1221 │ 0/1513 │ 9/627 │ │ 👥 contributors │ 132 │ 198 │ 166 │ 221 │ │ 🚀 releases │ 63 │ 49 │ 206 │ 12 │ │ 🔭 release circle(avg) │ 10 days │ 25 days │ 13 days │ 222 days │ │ 🎯 lastRelease │ 24 day(s) ago │ 1 day(s) ago │ 5 day(s) ago │ 8 month(s) ago │ │ 🕦 lastCommit │ 2 day(s) ago │ 2 hour(s) ago │ 5 day(s) ago │ 6 day(s) ago │ │ 📝 lastUpdate │ 47 minute(s) ago │ 16 minute(s) ago │ 1 hour(s) ago │ 1 hour(s) ago │ └─────────────────────────┴─────────────────────┴───────────────────────┴──────────────────────┴──────────────────┘
What are some alternatives?
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.
Echo - High performance, minimalist Go web framework
Fiber - ⚡️ Express inspired web framework written in Go
GoSwagger - Swagger 2.0 implementation for go
kratos - Your ultimate Go microservices framework for the cloud-native era.
goa - Design-based APIs and microservices in Go
chi - lightweight, idiomatic and composable router for building Go HTTP services
Beego - beego is an open-source, high-performance web framework for the Go programming language.
Iris - The fastest HTTP/2 Go Web Framework. New, modern, easy to learn. Fast development with Code you control. Unbeatable cost-performance ratio :leaves: :rocket: | 谢谢 | #golang
dapr - Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.
gqlgen - go generate based graphql server library
Gizmo - A Microservice Toolkit from The New York Times