This repository provides extensional APIs for the Go standard library.
AI generated docs are available at:
This project is provided as a Go module.
Use go command to use from your project.
go get github.com/aileron-projects/go@latest
go mod tidy
- Logging zlog.
- Debugging zruntime/zdebug.
- Environmental Variables zos.
- HTTP Middleware Chains znet/zhttp.
- HTTP Reverse Proxy znet/zhttp.
- TCP Proxy znet/ztcp.
- UDP Proxy znet/zudp.
- Crontab, Cron Job ztime/zcron.
- Rate Limiting ztime/zrate.
- Load Balancer zx/zlb.
Package structure, or directory structure, basically follows the Go standard library.
All packages in this repository are allowed to use
- standard packages
- golang.org/x
- Third party packages
A package can contain package of higher-level APIs in its subdirectories. Higher level APIs can use lower level APIs. That means a package can use parent packages and cannot use child packages.
For example, in the following package structure,
- package
lowapi
cannot use neithermiddleapi
norhighapi
- package
middleapi
can uselowapi
and cannot usehighapi
- package
highapi
can use bothlowapi
andmiddleapi
lowapi/ <────────┐ <──┐
│ | |
└── middleapi/ ──┘ <──┤
│ |
└── highapi/ ──────┘
Rules for internal packages
follow the Go specification.
Operating System:
Linux
: ubuntu-latestWindows
: windows-latestmacOS
: macos-latest
Go:
- Current Stable:
go 1.(N).x
- Previous Stable:
go 1.(N-1).x
- Minimum Requirement:
go 1.(N-2).0
- Declared in the go.mod
Where N
is the current latest minor version.
See the Go official release page Stable versions.
In addition to the environment above, following platforms are tested on ubuntu using QEMU User space emulator.
amd64
arm/v5
arm/v6
arm/v7
arm64
ppc64
ppc64le
riscv64
s390x
loong64
386
mips
mips64
mips64le
mipsle
- Releases are made as needed.
- Versions follow Semantic Versioning.
vX.Y.Z
vX.Y.Z-rc.N
vX.Y.Z-beta.N
vX.Y.Z-alpha.N
Apache 2.0