Skip to content

Releases: wasilibs/go-re2

v1.4.1

16 Nov 07:26
4f9defb
Compare
Choose a tag to compare

This release fixes concurrency issues related to getting subgroup names and cgo result pointers. Notably, the race detector is now on enabled on CI tests.

Full Changelog: v1.4.0...v1.4.1

v1.4.0

07 Aug 02:26
7196e64
Compare
Choose a tag to compare

1.4.0 fixes a memory leak when using the ReplaceAll family of functions where there are no matches to replace. It also updates wazero to 1.3, which includes various performance improvements.

Full Changelog: v1.3.0...v1.4.0

v1.3.0

26 Jun 05:20
3c7ed0a
Compare
Choose a tag to compare

1.3.0 fixes an issue when using cgo mode on Windows and adds verification of cgo and Windows to the CI build. To support this, the baseline C++ toolchain requirement has been bumped from c++11 to c++17 - if you are using an older toolchain, please update to allow building with the new version.

There are no other changes - notably, if you are not using cgo and especially on Windows, there is no strong need to upgrade.

Full Changelog: v1.2.0...v1.3.0

v1.2.0

20 Jun 07:30
e36bad5
Compare
Choose a tag to compare

This is a small release that updates wazero to 1.2.1, improving performance across compilation and runtime, and tweaking the usage of finalizers to work with the latest release of nottinygc.

Full Changelog: v1.1.0...v1.2.0

v1.1.0

08 May 02:18
a1508a8
Compare
Choose a tag to compare

go-re2 1.1.0 updates wazero to 1.1.0 (the version being the same is a coincidence, in the future they probably will not be). The latest wazero brings numerous optimizations which will result in fewer allocations when calling regexp methods and other general improvements. Check out their release notes for the full list of changes.

wasi-sdk-20 is also now used to build the Wasm module.

There are no other changes to the library besides these dependencies.

Full Changelog: v1.0.0...v1.1.0

v1.0.0

30 Mar 07:42
76d60eb
Compare
Choose a tag to compare

Welcome to the first 1.0 release of go-re2. This project follows semantic versioning and will not break API compatibility across minor versions outside of experimental packages.

An important fix is included for an issue using cgo when under GC pressure. Many thanks to @buixor for filing an issue with an excellent repro.

Memory usage using wazero has also been reduced by recognizing that most uses of a compiled expression will only involve one or few of the APIs provided by Regexp. Now, we lazily initialize the machinery for invoking Wasm. While the impact on memory usage will vary by code usage, many common cases should see a ~20% reduction in at-rest memory usage for compiled expressions.

And speaking of wazero, this release also marks the usage of their 1.0 release. wazero is integral to this library and deserves a round of applause for launching an excellent WebAssembly runtime for Go.

New Contributors

Full Changelog: v0.2.1...v1.0.0

v0.2.1

24 Mar 07:42
e6124b2
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.2.0...v0.2.1

v0.2.0

24 Mar 06:55
Compare
Choose a tag to compare

This release adds an experimental package that contains APIs not present in the stdlib regexp package. The first allows compiling the regex in latin1 mode, which will allow matching any arbitrary bytes, not just valid utf8 strings.

In the future, such extra APIs may be promoted to stable APIs, but for the upcoming 1.0 release, we will stick to only supporting the API that stdlib does for now.

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0

19 Dec 08:30
4c95186
Compare
Choose a tag to compare

Welcome to go-re2, a drop-in replacement for regexp using re2. It can be used by any Go application, even when cgo is not available or practical, or Wasm applications built with TinyGo.

There is currently no unique API in this package, it is the same as regexp - therefore, there is not expected to be API breakage on the way to v1.0.0. v0.1.0 reflects only that this is an initial release that has not been battle-tested in production. It does pass all of the same tests and benchmarks as regexp though and should work fine in general, with the caveats mentioned in the README. If there are no issues found, the next release would be v1.0.0.

This project is made possible by these notable dependencies that deserve many thanks:

  • re2 - a mature, high-performance regex engine
  • wazero - a Wasm runtime that allows us to avoid cgo
  • TinyGo - a compiler to allow creating Wasm binaries using Go
  • wasi-sdk - a toolchain for compiling C++ into Wasm