This repository provides extensional APIs for the Go standard library.
Add this package to your projects with following command.
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
lowapicannot use neithermiddleapinorhighapi - package
middleapican uselowapiand cannot usehighapi - package
highapican use bothlowapiandmiddleapi
lowapi/ <────────┐ <──┐
│ | |
└── middleapi/ ──┘ <──┤
│ |
└── highapi/ ──────┘
Rules for internal packages follow the Go specification.
Operating System:
Linux: ubuntu-latestWindows: windows-latestmacOS: macos-latest
Go:
In addition to the environment above, following platforms are tested on ubuntu using QEMU User space emulator.
- x86:
amd64,386 - arm:
arm/v5,arm/v6,arm/v7,arm64 - risc:
riscv64,loong64 - ppc:
ppc64,ppc64le - mips:
mips,mips64,mips64le,mipsle - ibm:
s390x
- Releases are made as needed.
- Versions follow Semantic Versioning.
vX.Y.Z-alpha.NvX.Y.Z-beta.NvX.Y.Z