v0.3.0
v0.3.0 contains a rewrite of the agent to server protocol. Instead of forwarding individual HTTP requests and responses, the protocol transports raw TCP bytes multiplexed over a single outbound connection from the upstream to the server.
This has a few major benefits:
- It supports non-HTTP protocols in the future (particularly TCP)
- It supports WebSockets
- It supports a Go SDK in the future where clients can listen for connections from Piko like any other TCP listener (such as
net.Listener
in Go) - It makes the agent and server much simpler as they can treat the 'connection' to the upstream as any other TCP connection (even though the connection is actually multiplexed over the upstreams outbound connection to Piko)
This release also adds TLS support, both for the server and for the agent to configure custom root CAs to verify the servers TLS certificates. It also refactors the piko agent
command line and configuration.
What's Changed
- docs: add logo by @andydunstall in #46
- client: add go sdk interface by @andydunstall in #47
- agentv2: add agent cli and configuration by @andydunstall in #48
- agentv2: add endpoint interface by @andydunstall in #49
- agentv2: add endpoint reverse proxy by @andydunstall in #50
- conn: add websocket options by @andydunstall in #52
- tls: add tls support by @andydunstall in #53
- agentv2: add heartbeats by @andydunstall in #54
- docs: update logo by @andydunstall in #55
- client: register endpoint listener by @andydunstall in #56
- serverv2: add reverse proxy to forward requests to upstream by @andydunstall in #57
- agentv2: handle listener connections by @andydunstall in #58
- add docker package by @andydunstall in #59
- tests: use httptest.Server by @andydunstall in #60
- serverv2: add reverse proxy by @andydunstall in #61
- agentv2: add pkg/mux by @andydunstall in #62
- agentv2: add connection per listener by @andydunstall in #63
- agentv2: add config options by @andydunstall in #64
- serverv2: rewrite reverse proxy by @andydunstall in #65
- serverv2: load balance among connected upstreams by @andydunstall in #66
- piko: integrate agent/server v2 by @andydunstall in #67
- admin: add request forwarding by @andydunstall in #68
- status: add upstream endpoints status command by @andydunstall in #69
- server: add usage reporting by @andydunstall in #70
Full Changelog: v0.2.0...v0.3.0