Skip to main content

IO

Use CGO, libc, and pure SQLite
·339 words·2 mins
Since Envoy will always depend on libc, it seems reasonable for IO to also.
Use the Charm logger
·28 words·1 min
Use the Charm logger consistently through IO.
Use one JWT library
·64 words·1 min
Use github.com/lestrrat-go/jwx/v3 for all JWT operations.
Minimize Dependencies
·134 words·1 min
Keep third-party dependencies at a minimum.
No SDKs
·158 words·1 min
No third-party SDKs are used by IO to call networked APIs.
Use SCP and SFTP
·88 words·1 min
Use SCP and SFTP to configure and observe IO.
Use SSH to connect to IO
·96 words·1 min
Use SSH to make the IO TUI available to remote users.
Use Vault
·96 words·1 min
Build Vault integration and use Vault to manage secrets.
Internalize Protobuf Codegen
·118 words·1 min
All protobuf support code that IO uses is generated within the project.
Build ATProto OAuth Support
·105 words·1 min
Build support for AT Protocol Authorization directly into IO.
Build OAuth Support
·94 words·1 min
Build support for OAuth into IO.
Use Nomad
·76 words·1 min
Build Nomad integration and use Nomad to manage containers.
Use HCL
·94 words·1 min
Configure IO with the Hashicorp Configuration Language.
Build ACME Support
·83 words·1 min
Build support for the ACME protocol into IO to automatically provision SSL certificates.
Use SQLite
·94 words·1 min
Use SQLite for IO internal storage and general data persistence.
Use Bubble Tea
·79 words·1 min
Use Bubble Tea to build a terminal user interface for IO.
Name the proxy "IO"
·41 words·1 min
Use “IO” to clearly assert the project’s goals.
Use Linux Abstract Sockets
·58 words·1 min
Use Linux Abstract Sockets for local communication.
Build an Envoy Controller
·85 words·1 min
IO is an Envoy controller and Envoy is a core component of IO.