Skip to content

aileron-projects/go

Go standard library extensions

This repository provides extensional APIs for the Go standard library.

GoDoc Go Report Card License

Codecov Test Suite Check Suite OpenSourceInsight OSS Insight

AI generated docs are available at:

Usage

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

Key Features

Package Dependency Policy

Package structure, or directory structure, basically follows the Go standard library.

All packages in this repository are allowed to use

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 neither middleapi nor highapi
  • package middleapi can use lowapi and cannot use highapi
  • package highapi can use both lowapi and middleapi
lowapi/  <────────┐  <──┐
│                 |     |
└── middleapi/  ──┘  <──┤
    │                   |
    └── highapi/  ──────┘

Rules for internal packages follow the Go specification.

Tested Environment

Operating System:

Go:

  • Current Stable: go 1.(N).x
  • Previous Stable: go 1.(N-1).x
  • Minimum Requirement: go 1.(N-2).0

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

Release Cycle

  • 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

License

Apache 2.0