encr.dev

module
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2022 License: MPL-2.0

README

Encore makes it super easy to create backend services and APIs. Built ground up for Go, Encore uses static analysis and code generation to provide a revolutionary developer experience that is extremely productive.

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

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

Setup Demo

Setup demo

Database Demo

Setting up a database

API Documentation

API Documentation

Distributed Tracing

Automatic Tracing

Contributing to Encore and building from source

See CONTRIBUTING.md.

Frequently Asked Questions (FAQ)

Who's behind Encore?

We're long-time Staff Engineers from Spotify, who grew frustrated with all the boilerplate and boring stuff you have to do to build modern cloud applications.

Why is the framework integrated with cloud hosting?

We've found that to meaningfully improve developer productivity you have to operate across the full stack. Unless you understand how an application is deployed, there are lots of things in the development process that you can't simplify. You can still use your own account with any of the major cloud providers (AWS/Azure/GCP), or you can use Encore's cloud for free, for Hobby projects, with pretty generous "fair use" limits.

Can I use an existing Kubernetes cluster with Encore?

Not right now. We definitely want to support deploying to an existing k8s cluster, and enable more flexible deployment topologies in general. It's a bit tricky since we set up the cluster in a certain way, and it's hard to know how the existing cluster is configured and we don't want to break any existing application that might be running there.

Can you have it provision in Kubernetes rather than a cloud infrastructure?

Right now we only support deploying Encore apps to managed services such as AWS Lambda/Google Cloud Run. Either where we host it for you (using GCP under the hood), or you can tell Encore to deploy to your own cloud account. In that case we set it up in a serverless fashion like Lambda/Cloud Run.

Does Encore support using websockets?

Encore supports dropping down to plain HTTP requests which lets you use Websockets.

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.
  • Send us feedback or ask questions via email.
  • Connect with other Encore users on Slack.
  • Follow us on Twitter.
  • Leave feedback on our Product 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