I’ve written a couple of blog posts this year on the rewrite of asdf in Go. My previous posts have covered some of the technical details of the rewrite. I thought I spent quite a bit of time weighing the merits of several different languages before I settled on Go. I’d take some time to share my reasons for choosing Go.
Asdf Performance Improvements
asdf was rewritten from scratch in Go and released on January 29th. No special attention was given to performance during the rewrite. The goal was feature parity in a more maintainable language. In this post I’m going to share some benchmarks I ran across many versions of asdf and show how the Go rewrite improved performance.
Asdf Has Been Re-Written in Golang
Over the last year I’ve rewritten asdf in Go. I’m excited to announce that the rewrite was released last Wednesday as asdf version 0.16.0!
asdf 0.16.0 is now a single binary rather than a collection of Bash scripts. All operations are faster than they were in the previous versions. With improvements ranging from 2x-7x faster than asdf version 0.15.0! Numerous long-standing bugs were also fixed during the rewrite. The codebase is also much more approachable for new contributors, and we can now leverage tools in the Go ecosystems to make future releases of asdf even better!