encr.dev

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2022 License: MPL-2.0

README

Encore - Backend development engine

Encore – Backend Development Engine

Encore makes it incredibly simple to create distributed systems, backend services and APIs. While still deploying to your own cloud account, Encore helps you escape the maze of cloud complexity:
  • No endless repetition of boilerplate

  • No infrastructure to worry about

  • No reinventing the wheel

Start building with a fantastic flow-state experience that unlocks your creative potential.
All of this is freely available, based on the Open Source Encore Go Framework.

🏁 Get started in minutes and check out the documentation: encore.dev/docs

⭐ If you find Encore interesting, please consider starring this repository to help spread the word.

Key features

  • No Boilerplate: Set up a production ready backend application in minutes. Define services, API endpoints, and call APIs with a single line of Go code.

  • Databases Made Simple: Define the schema and then start querying. Encore takes care of provisioning, migrations, connections and passwords.

  • Distributed Tracing: Your application is automatically instrumented for excellent observability. Automatically capture information about API calls, goroutines, HTTP requests, database queries, and more. Works for both local development and production.

  • Infrastructure Provisioning: Encore understands how your application works, and provisions and manages your cloud infrastructure. Works with all the major cloud providers using your own account (AWS/Azure/GCP) and for local development.

  • Preview Environments: Every pull request becomes an isolated test environment. Collaborate and iterate faster than ever.

  • Simple Secrets: It's never been this easy to store and securely use secrets and API keys. Define secrets in your code like any other variable, 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.

  • Generate Frontend Clients: Automatically generate type-safe, documented clients for your frontends.

Getting started

To start using Encore, follow our simple Quick Start Guide.

Screenshots

Simple Cloud Environments

Simple Cloud Environments

Automatic Infrastructure Provisioning

Automatic Infrastructure Provisioning

Distributed Tracing

Distributed Tracing

Automated API Documentation

Automated API Documentation

Native Cron Jobs

Native Cron Jobs

Contributing to Encore and building from source

See CONTRIBUTING.md.

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 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 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 for 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.

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, we're bravely rethinking the developer experience in a much more significant way.

Get Involved

We rely on your contributions and feedback to improve Encore. We love hearing about your experiences using Encore, and about what may be unclear and we can do a better job explaining.

  • ⭐ Star this repository to help spread the word.
  • Join the most pioneering developer community on Slack.
  • Follow us on Twitter.
  • Send us feedback or ask questions via email.
  • Leave feedback on our Public Roadmap.
  • Book a session to speak with us directly.

Directories

Path Synopsis
cli
cmd/git-remote-encore
Command git-remote-encore provides a gitremote helper for interacting with Encore's git hosting without SSH keys, by piggybacking on Encore's auth tokens.
Command git-remote-encore provides a gitremote helper for interacting with Encore's git hosting without SSH keys, by piggybacking on Encore's auth tokens.
daemon
Package daemon implements the Encore daemon gRPC server.
Package daemon implements the Encore daemon gRPC server.
daemon/dash
Package dash serves the Encore Developer Dashboard.
Package dash serves the Encore Developer Dashboard.
daemon/internal/manifest
Package manifest reads and writes Encore app manifests.
Package manifest reads and writes Encore app manifests.
daemon/internal/sym
Package sym parses symbol tables from Go binaries.
Package sym parses symbol tables from Go binaries.
daemon/run
Package run starts and tracks running Encore applications.
Package run starts and tracks running Encore applications.
daemon/secret
Package secret fetches and caches development secrets for Encore apps.
Package secret fetches and caches development secrets for Encore apps.
daemon/sqldb
Package sqldb runs and manages connections for Encore applications.
Package sqldb runs and manages connections for Encore applications.
internal/appfile
Package appfile reads and writes encore.app files.
Package appfile reads and writes encore.app files.
internal/browser
Package browser provides utilities for interacting with users' browsers.
Package browser provides utilities for interacting with users' browsers.
internal/codegen
Package codegen generates code for use with Encore apps.
Package codegen generates code for use with Encore apps.
internal/conf
Package conf writes and reads the Encore configuration file for the user.
Package conf writes and reads the Encore configuration file for the user.
internal/env
Package env answers where Encore tools and resources are located.
Package env answers where Encore tools and resources are located.
internal/gosym
Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers.
Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers.
internal/jsonrpc2
Package jsonrpc2 is a minimal implementation of the JSON RPC 2 spec.
Package jsonrpc2 is a minimal implementation of the JSON RPC 2 spec.
internal/jsonrpc2/servertest
Package servertest provides utilities for running tests against a remote LSP server.
Package servertest provides utilities for running tests against a remote LSP server.
internal/login
Package login handles login and authentication with Encore's platform.
Package login handles login and authentication with Encore's platform.
internal/wgtunnel
Package wgtunnel sets up and configures Encore's WireGuard tunnel for authenticating against private environments.
Package wgtunnel sets up and configures Encore's WireGuard tunnel for authenticating against private environments.
internal/xos
Package xos provides cross-platform helper functions.
Package xos provides cross-platform helper functions.
Package parser parses Encore applications into an Encore Syntax Tree (EST).
Package parser parses Encore applications into an Encore Syntax Tree (EST).
est
Package est provides the Encore Syntax Tree (EST).
Package est provides the Encore Syntax Tree (EST).
paths
Package paths parses API paths.
Package paths parses API paths.
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL