Become a sponsor to Martin Atkins
Over the years I've worked on a number of open source projects across various areas of interest.
Various potential dependents of my projects belong to foundations or organizations that unfortunately do not permit strong-copyleft licenses, and so although I personally prefer the "share-alike" approach I tend to publish much of my work under highly-permissive licenses so that those considering use of my projects can focus on whether the features and goals of my project meet their needs, rather than worrying about seeking legal approval.
I offer this software with no strings attached beyond the license text in each repository, but if you decide to use any of my projects in codebases that are not themselves shared under similarly-permissive or copyleft licenses -- particularly if you then derive commercial value from those codebases -- I would very much appreciate any recurring or one-time contributions that you feel reflect the effort you've saved by using my project instead of developing something similar yourself.
If you're using any of my projects as part of other projects that are also under permissive open source or copyleft licenses then your willingness to share your work freely with the community is much appreciated -- thank you! -- and as far as I'm concerned is recognition enough for the value of my work.
[!NOTE]
My work directly on OpenTofu is currently sponsored by Spacelift, and so is explicitly not in scope for this sponsorship profile.Some of the personal projects listed below happen to be dependencies of OpenTofu, but are separate and maintained as my personal projects.
The following projects were designed and developed substantially by me in my spare time:
-
cty (dependents) is a Go library providing a dynamic type system that is a foundation of numerous configuration and expression languages.
-
go-textseg (dependents) is a Go library implementing the grapheme cluster recognition algorithm from Unicode Standard Annex #29, which defines how to split unicode text into distinct characters while retaining complex sequences such as combining diacritics and emoji with gender presentation and skin-tone modifiers.
-
go-versions (dependents) offers building-blocks for applications that need to support the selection of external package versions based on version constraints like
>= 2.0.0
, supporting both a NodeJS/rust-cargo/etc-style constraint grammar and a Rubygems-style constraint grammar. -
go-cidr (dependents) extends the basic IP address and network address modelling from Go's
net
package to support new operations such as calculating CIDR subnet and host addresses for network planning purposes. -
Various providers for HashiCorp Terraform and OpenTofu: the providers in the "apparentlymart" namespace in both the Terraform and OpenTofu registries are my personal projects.
-
ZCL was a language toolkit designed to help in the design and implementation of expressive configuration languages.
Once it was initially feature-complete, ZCL was forked by HashiCorp to become HCL 2 (dependents), which provides the base features of various infrastructure-as-code tools including HashiCorp Terraform and OpenTofu.
I no longer directly maintain ZCL, but if you've benefited indirectly from my work on it through HCL 2 and wish to recognize that benefit retroactively then that would be much appreciated!
I've created this profile only because over the years some folks have asked if they could send small financial contributions to recognize my personal work. I don't depend on GitHub Sponsors income and so if your funds for sponsorship are limited then I expect that there are others for whom your contributions would be considerably more impactful.
Thanks!
Featured work
-
hashicorp/hcl
HCL is the HashiCorp configuration language.
Go 5,304 -
zclconf/go-cty
A type system for dynamic values in Go applications
Go 352 -
apparentlymart/go-cidr
Go library for various manipulations of CIDR netmasks and their associated addresses
Go 116 -
apparentlymart/terraform-provider-bash
Terraform utility provider for constructing bash scripts that use data from a Terraform module
Go 39 -
apparentlymart/go-versions
Version-wrangling library for Go
Go 10 -
apparentlymart/go-textseg
Go implementation of Unicode Text Segmentation
Go 6