All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
5.31.0 - 2025-12-20
- Add new
osextpackage with some helpers for fetching and parsing ENV variables.
5.30.0 - 2024-06-01
- Changed NanoTome to not use linkname due to Go1.23 upcoming breaking changes.
5.29.1 - 2024-04-04
- Added HTTP 404 to non retryable status codes.
5.29.0 - 2024-03-24
asciiextpackage for ASCII related functions.errorsext.Retrierconfigurable retry helper for any fallible operation.httpext.Retrierconfigurable retry helper for HTTP requests and parsing of responses.httpext.DecodeResponseAnynon-generic helper for decoding HTTP responses.httpext.HasRetryAfterhelper for checking if a response has aRetry-Afterheader and returning duration to wait.
5.28.1 - 2024-02-14
- Additional supported types, cast to
sql.Valuersupported types, they need to be returned to the driver for evaluation.
5.28.0 - 2024-02-13
- Additionally supported types, cast to
sql.Valuersupported types.
- Option scan to take advantage of new
sql.Nullandreflect.TypeForfor go1.22+. BytesToString&StringToBytesto useunsafe.String&unsafe.Slicefor go1.21+.
mathext.Min&mathext.Maxin favour of std lib min & max.
- Some documentation typos.
5.27.0 - 2024-01-29
sliceext.Retain&sliceext.Filterto not shuffle data in the underlying slice array but create new slice referencing the data instead. In practice, it can cause unexpected behaviour and users expectations not met when the same data is also referenced elsewhere. If anyone still requires ashuffleimplementation for efficiency I'd be happy to add a separate function for that as well.
5.26.0 - 2024-01-28
stringsext.Joina more ergonomic way to join strings with a separator when you don't have a slice of strings.
5.25.0 - 2024-01-22
- Add additional
Option.Scantype support forsql.Scannerinterface of Uint, Uint16, Uint32, Uint64, Int, Int, Int8, Float32, []byte, json.RawValue.
5.24.0 - 2024-01-21
appextpackage for application level helpers. Specifically added setting up os signal trapping and cancellation of context.Context.
5.23.0 - 2024-01-14
AndandAndThenfunctions toOption&Resulttypes.
5.22.0 - 2023-10-18
UnwrapOr,UnwrapOrElseandUnwrapOrDefaultfunctions toOption&Resulttypes.
5.21.3 - 2023-10-11
- Fix SQL Scanner interface not returning None for Option when source data is nil.
5.21.2 - 2023-07-13
- Updated default form/url.Value encoder/decoder with fix for bubbling up invalid array index values.
5.21.1 - 2023-06-30
- Instant type to not be wrapped in a struct but a type itself.
5.21.0 - 2023-06-30
- Instant type to make working with monotonically increasing times more convenient.
5.20.0 - 2023-06-17
- Expanded Option type SQL Value support to handle value custom types and honour the
driver.Valuerinterface.
- Option sql.Scanner to support custom types.
5.19.0 - 2023-06-14
- strconvext.ParseBool(...) which is a drop-in replacement for the std lin strconv.ParseBool(..) with a few more supported values.
- Expanded Option type SQL Scan support to handle Scanning to an Interface, Struct, Slice, Map and anything that implements the sql.Scanner interface.
5.18.0 - 2023-05-21
- typesext.Nothing & valuesext.Nothing for better clarity in generic params and values that represent struct{}. This will provide better code readability and intent.
5.17.2 - 2023-05-09
- Prematurely closing http.Response Body before error with it can be intercepted for ErrUnexpectedResponse.
5.17.1 - 2023-05-09
- ErrRetryableStatusCode passing the *http.Response to have access to not only the status code but headers etc. related to retrying.
- Added ErrUnexpectedResponse to pass back when encountering an unexpected response code to allow the caller to decide what to do.
5.17.0 - 2023-05-08
- bytesext.Bytes alias to int64 for better code clarity.
- errorext.DoRetryable(...) building block for automating retryable errors.
- sqlext.DoTransaction(...) building block for abstracting away transactions.
- httpext.DoRetryableResponse(...) & httpext.DoRetryable(...) building blocks for automating retryable http requests.
- httpext.DecodeResponse(...) building block for decoding http responses.
- httpext.ErrRetryableStatusCode error for retryable http status code detection and handling.
- errorsext.ErrMaxAttemptsReached error for retryable retryable logic & reuse.
5.16.0 - 2023-04-16
- sliceext.Reverse(...)
5.15.2 - 2023-03-06
- Unnecessary second type param for Mutex2.
5.15.1 - 2023-03-06
- New Mutex2 functions and guards; checked in the wrong code accidentally last commit.
5.15.0 - 2023-03-05
- New Mutex2 and RWMutex2 which corrects the original Mutex's design issues.
- Deprecation warning for original Mutex usage.
5.14.0 - 2023-02-25
- Added
timext.NanoTimefor fast low level monotonic time with nanosecond precision.