Go Fries Components: A Modular Go Ecosystem for Kratos and Beyond
🚀 Go ecosystem components, such as: Gin, Kratos, Chi, Event, CloudEvents, AMQP, etc. 🌟
At a glance
- What is it?
- Go Fries is a collection of Go modules for building services, from HTTP adapters to event dispatching, with a focus on Kratos integration. It offers broad coverage but carries breaking changes in v4 that require careful migration.
- Who is it for?
- Go Fries is for Go developers already using Kratos who want a single repository of well-integrated components for HTTP, caching, events, and configuration. It is not for those who need stable, long-term APIs, as v4 introduces breaking changes.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Go, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Star history
- go-fries/fries33 ★ · +0
| Repository | 2026-08-27 | 2026-10-22 |
|---|---|---|
| go-fries/fries | 33 | 33 |
0 Stars in the last 56 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
A Component Catalog for Go Services
Go Fries solves the problem of assembling a production Go service from disparate libraries. It is a repository of components that cover common needs: HTTP servers, caching, configuration, event handling, and more. The intended audience is developers building microservices with the Kratos framework, though the components are not strictly tied to it. The README lists families like Core, Cache, Codec, Config, and HTTP, each with multiple modules. This breadth is the main value proposition: instead of hunting for separate libraries, you pull from one source. However, the catalog is large, and not every module is equally mature. The v4 line explicitly warns of breaking changes, which signals that the project is still evolving and not a set-and-forget dependency.
How the Modules Fit Together
The architecture is modular by design. Each family is a separate Go module with its own version path, such as `github.com/go-fries/fries/cache/v4`. This lets you depend on only the parts you need, avoiding a monolithic import. The core module provides release metadata and shared helpers, while others build on it. For example, the `event` module offers synchronous type-aware dispatching with a recovery middleware. The `lifecycle` module handles startup and shutdown with rollback. The `config` module propagates configuration through `context.Context`, which is a specific pattern that fits Kratos's request-scoped model. The `codec` family defines a shared encoding contract with multiple implementations, allowing swap-in behavior. This modularity is a strength, but it also means you must understand the dependencies between modules before integrating.
Getting Started: Installation and Basic Use
Installation is straightforward. The README shows a single command: `go get github.com/go-fries/fries/v4`. After that, you import the specific module you need. For instance, to use the Gin adapter, you would import `github.com/go-fries/fries/gin/v4`. The README does not provide code examples, so you must rely on the package documentation for usage. The `versions.yaml` file mentioned in the README suggests a managed release process, but it is not detailed. The lack of examples in the README is a gap for new users. You will likely need to read the source or the generated docs on pkg.go.dev to understand how to wire components into your application.
The v4 Breaking Change Risk
The README contains a clear warning: the v4 line may include breaking changes compared with v3, and it advises caution. This is a genuine limitation. If you are upgrading from v3, you must review the release notes for each minor version. The project states that backward compatibility is the default within v4, but any incompatibilities will be noted. This means you cannot assume a smooth upgrade path. For a production system, this adds a maintenance burden. You must track releases and test each update. The presence of a `v4.0.0-beta.3` release shortly before the stable v4.0.0 suggests rapid iteration, which can be risky for teams that prefer stability.
Where Go Fries May Be the Wrong Tool
Go Fries is not a good fit if you need a minimal, focused library. The repository is a collection, and even if you use one module, you inherit the project's release cadence and breaking change policy. If your project is not based on Kratos, some components like the `crontab` adapter that integrates with the Kratos server lifecycle will be less useful. Also, the `hyperf/jet` RPC client is specifically for Hyperf compatibility, which narrows its audience. For simple HTTP services, using the standard library or a single-purpose framework like Chi directly might be simpler. The modularity helps, but the overall project is oriented toward a specific ecosystem.
Alternatives: The Standard Library and Focused Libraries
A real alternative is to use the Go standard library's `net/http` for HTTP servers, with individual libraries for caching (like `go-redis/cache`) and configuration (like `spf13/viper`). This approach gives you full control and avoids the breaking change risk. For event handling, you could use a dedicated library like `asaskevich/EventBus` or a message queue client. The difference is that Go Fries provides a unified abstraction layer, which can reduce integration friction but also locks you into its API. If you value stability over convenience, the standard library plus focused libraries is a safer bet. For Kratos users, the official Kratos ecosystem might offer similar components, though the README does not compare them.
Maintenance and Licensing Considerations
The project is under the MIT license, which is permissive and allows commercial use. The repository is active, with the last push and release on 2026-08-22. The maintenance model appears to be centralized, with a `versions.yaml` file that aligns the catalog with stable releases. However, the README does not document a deprecation policy or a timeline for future v5. For upgrade costs, you must monitor releases and adapt to breaking changes. The migration from `github.com/go-kratos-ecosystem/components` to `github.com/go-fries/fries` means import paths have changed, which is a one-time cost for existing users. There is no mention of a contribution guide or community governance, so support relies on the maintainers' responsiveness.
Editorial conclusion
Go Fries is for Go developers already using Kratos who want a single repository of well-integrated components for HTTP, caching, events, and configuration. It is not for those who need stable, long-term APIs, as v4 introduces breaking changes. Before adopting, verify the specific modules you need exist in the stable set and review the v4 release notes for breaking changes. Check the module's Go version compatibility and ensure the community support meets your needs, given the project's migration from the original ecosystem.
Frequently asked questions
what is fries slang for
In this repository the word carries no slang meaning. It is a Go module collection published under github.com/go-fries/fries, holding components such as codec, filesystem, cache, lifecycle and health, and it was migrated from the original go-kratos-ecosystem components repository.
how to use fries in air fryer
That question is not about this project. The repository contains Go source, a Makefile, buf configuration for protobuf, a golangci configuration, and renovate settings, and installation is a single go get for the v4 module path.
Are French fries healthy or junk?
Nothing nutritional appears in this repository. What it documents is a Go component set on the v4 line, with a caution that the major version may include breaking changes compared with v3 while backward compatibility is the default behavior within v4.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/go-fries-fries)Star history chart for your README
[](https://hysenlabs.com/projects/go-fries-fries)