apex / apex/up

Zero-overhead native Go support

Open
#543 4 comments 25 reactions 0 assignees View on GitHub
Feature Request Performance
Dominant language
Go
Stars
8.8k
Forks
383
PR merge metrics
No merged PRs in 30d

Description

Currently there's a local proxy `Up Proxy -> Your App`, however with native Go we could now let you run native Go apps without the proxy, by embedding it, something like:

```
func main() {
up.Handle(h)
}
```

Honestly I think the latency benefits would be negligible, but it's worth investigating. Another benefit would be that you can shave ~3mb off your deploy size (and time).

TL;DR this keeps all of the Up proxy features, with none of the overhead.

- [ ] remove `Runtime`? decide how to signal native support
- [ ] add nicer public interface to `"github.com/apex/up/platform/lambda/proxy/golang"`
- [ ] add config to opt-in and/or detect (too much magic probably haha)
- [ ] add examples
- [ ] ensure shim is still used by default
- [ ] ensure `up start` respects this
- [ ] QA
- [ ] docs (mention missing relay features for logs etc)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.