Description
Encore is a backend development platform that automatically provisions infrastructure — from developing locally to scaling on AWS/GCP. It's designed to help you build your product without platform distractions, removes boilerplate, and comes with built-in tools for observability and collaboration.
Encore alternatives and similar packages
Based on the "Distributed Systems" category.
Alternatively, view Encore alternatives based on common mentions on social networks and blogs.
-
Nomad
Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations. -
go-zero
DISCONTINUED. go-zero is a web and rpc framework written in Go. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity. [Moved to: https://github.com/zeromicro/go-zero] -
rpcx
Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱! build for cloud! -
gleam
Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly. -
glow
Glow is an easy-to-use distributed computation system written in Go, similar to Hadoop Map Reduce, Spark, Flink, Storm, etc. I am also working on another similar pure Go system, https://github.com/chrislusf/gleam , which is more flexible and more performant. -
Olric
Distributed, in-memory key/value store and cache. It can be used as an embedded Go library and a language-independent service. -
Dragonfly
Dragonfly is an open source P2P-based file distribution and image acceleration system. It is hosted by the Cloud Native Computing Foundation (CNCF) as an Incubating Level Project. -
go-doudou
go-doudou(doudou pronounce /dəudəu/)is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well. -
resgate
A Realtime API Gateway used with NATS to build REST, real time, and RPC APIs, where all your clients are synchronized seamlessly. -
go-sundheit
A library built to provide support for defining service health for golang services. It allows you to register async health checks for your dependencies and the service itself, provides a health endpoint that exposes their status, and health metrics. -
Maestro
Take control of your data, connect with anything, and expose it anywhere through protocols such as HTTP, GraphQL, and gRPC. -
celeriac
Golang client library for adding support for interacting and monitoring Celery workers, tasks and events. -
drmaa
Compute cluster (HPC) job submission library for Go (#golang) based on the open DRMAA standard.
CodeRabbit: AI Code Reviews for Developers
Do you think we are missing an alternative of Encore or a related project?
Popular Comparisons
README
Encore – Backend Development Engine Encore is a Backend Development Engine, purpose-built for a flow state developer experience when creating cloud-based backend applications, APIs, and distributed systems using Go. With Encore you build microservices with the same simple developer experience as building a monolith. You write your business logic with the Open Source Encore Go framework, then let the Encore platform analyze your code to automatically deal with the rest. Start building today and unlock your creative potential with:
No endless repetition of boilerplate.
No orchestrating and managing cloud services.
No reinventing the wheel.
🏁 Check out the documentation and get started in minutes: encore.dev/docs
⭐ If you find Encore interesting, star this repository to help spread the word.
👋 Have questions? Join the friendly developer community, or say hello on Slack.
Key features
Write a function, get an API: Call any function as an API by adding a single annotation.
Microservices without hassle: Define services and API endpoints with a single line of Go code. Create multiple services as easy as creating Go packages.
Cloud primitives at your fingertips: Primitives like databases, queues, and scheduled tasks, are native concepts that you express through Go code.
Built-in DevOps: Run
git push encore
to build, test, provision necessary infrastructure, and deploy.One developer experience, unlimited environments: All features work the same in any environment, including local development. Create as many or as few environments as you wish.
Infrastructure Provisioning in your own cloud account: Encore understands how your application works, and provisions and manages your cloud infrastructure in your own account. Works with all the major cloud providers, including AWS/Azure/GCP. Encore also offers free build-in cloud hosting for development.
Intelligent architecture diagrams: Real-time automated and interactive microservices architecture diagrams, we call it Encore Flow.
Preview Environments: Integrate with GitHub to automatically set up each pull request as a preview environment.
Distributed Tracing: Your application is automatically instrumented for excellent observability. Automatically capture information about API calls, goroutines, HTTP requests, database queries, and more.
Simple Secrets: The easiest way ever to store and securely use secrets and API keys. Define secrets in your code like any other variable, and Encore takes care of the rest.
Automated API documentation: Encore parses your source code to understand the request/response schemas for all your APIs, and automatically generates high-quality, interactive API Documentation for you.
Generated Frontend Clients: Automatically generate type-safe, documented clients for your frontends.
Use cases
Encore is designed to help individual developers and teams be incredibly productive, and have more fun, when solving most backend use cases. There are many developers building with Encore, loving the experience when building things like:
- CRUD backends and REST APIs powering SaaS products.
- Microservices backends for advanced web and mobile apps.
- Highly performant APIs providing advanced business logic to 3rd parties.
- And much more...
Getting started
Deploy your first app in minutes by following the Quick Start Guide.
Join the most pioneering developer community
Engineers building with Encore are forward-thinkers who want to focus on creative programming and building great software to solve meaningful problems. It's a friendly place to be, great for exchanging ideas and learnings! Join the conversation on Slack.
We rely on your contributions and feedback to improve Encore for everyone who is using it. Here's how you can contribute:
- ⭐ Star and watch this repository to help spread the word and stay up to date.
- Share your ideas and ask questions on Discourse.
- Meet fellow Encore developers and chat on Slack.
- Follow Encore on Twitter.
- Share feedback or ask questions via email.
- Leave feedback on the Public Roadmap.
- Send a pull request here on GitHub with your contribution.
Contributing to Encore and building from source
See [CONTRIBUTING.md](CONTRIBUTING.md).
Demo video
Visuals
Local Development Dashboard
Built-in CI/CD & Infrastructure Provisioning
Intelligent real-time architecture diagrams
Distributed Tracing
Simple Cloud Environments
Automated API Documentation
Native Cron Jobs
Frequently Asked Questions (FAQ)
Who's behind Encore?
Encore was founded by long-time backend engineers from Spotify, Google and Monzo with over 50 years of collective experience. We’ve lived through the challenges of building complex distributed systems with thousands of services, and scaling to hundreds of millions of users.
Encore grew out of these experiences and is a solution to the frustrations that came with them: unnecessary crippling complexity and constant repetition of undifferentiated work that suffocates the developer’s creativity. With Encore, we want to set developers free to achieve their creative potential.
Who is Encore for?
For individual developers building for the cloud, Encore provides a radically improved experience. With Encore you’re able to stay in the flowstate and experience the joy and creativity of building.
For startup teams who need to build a scalable backend to support the growth of their product, Encore lets them get up and running in the cloud within minutes. It lets them focus on solving the needs of their users, instead of spending most of their time re-solving the everyday challenges of building distributed systems in the cloud.
For teams in mature organizations that want to focus on innovating and building new features, Encore lets them stop spending time on operations and onboarding new team members. Using Encore for new feature development is easy, just spin up a new backend service in a few minutes.
How is Encore different?
Encore is the only tool that understands what you’re building. The Encore framework, coupled with static analysis, lets Encore deeply understand the application you’re building. This enables the platform to provide a unique developer experience that helps you stay in the flowstate as you’re building. For instance you don't need to bother with configuring and managing infrastructure, setting up environments and keeping them in sync, or writing documentation and drafting architecture diagrams. Encore does all of this automatically out of the box.
Unlike many tools that aim to only make cloud deployment easier, Encore is not a cloud hosting provider. With Encore, you can use your own cloud account with all the major cloud providers: AWS/Azure/GCP. This means you’re in control of your data and can maintain your trust relationship with your cloud provider. You can also use Encore's development cloud for free, with pretty generous "fair use" limits.
Why is the framework integrated with cloud hosting?
We've found that to meaningfully improve the developer experience, you have to operate across the full stack. Unless you understand how an application is deployed, there are a large number of things in the development process that you can't simplify. That's why so many other developer tools have such a limited impact. With Encore's more integrated approach, we're able to unlock a radically better experience for developers.
What if I want to migrate away from Encore?
Encore has been designed to let you go outside of the framework when you want to, and easily drop down in abstraction level when you need to. This means you're not likely to run into any "dead ends".
If you really do want to migrate away, it's relatively easy to do. Because when you build an Encore application, the vast majority of code is just plain Go. So in practice, the amount of code specific to Encore is very small.
Encore has built-in support for ejecting your application as a way of removing the connection to the Encore Platform. Ejecting your app produces a standalone Docker image that can be deployed anywhere you'd like, and can help facilitate the migration away according to the process above.
Migrating away is also very low risk, since Encore deploys to your own cloud account from the start, so there's never any data to migrate.
Open Source also plays a role. Encore's code generation, compiler, and parser are all open source and can be used however you want. So if you run into something unforeseen down the line, you have free access to the tools you might need.
And since Encore is about building distributed systems, it's quite straightforward to use it in combination with other backends that aren't built with Encore. So if you come across a use case where Encore for some reason doesn't fit, you won't need to tear everything up and start from scratch. You can just build that specific part without Encore.
It's our belief that adopting Encore is a low-risk decision, given it needs no initial investment in foundational work. The ambition is to simply add a lot of value to your everyday development process, from day one.