github.com/ettle/strcase (go): Package strcase is a package for converting strings into various word cases (e.g. snake_case, camelCase)  Example usage  String strcase is pretty straight forward and there are a number of methods to do it. This package is fully featured, more customizable, better tested, and faster* than other packages and what you would probably whip up yourself.  We work for with unicode strings and pay very little performance penalty for it as we optimized for the common use case of ASCII only strings.  You can create a custom caser that changes the behavior to what you want. This customization also reduces the pressure for us to change the default behavior which means that things are more stable for everyone involved.  The goal is to make the common path easy and fast, while making the uncommon path possible.  By default, we use the golint intialisms list. You can customize and override the initialisms if you wish to add additional ones, such as "SSL" or "CMS" or domain specific ones to your industry.  We have a wide ranging test suite to make sure that we understand our behavior. Test coverage isn't everything, but we aim for 100% coverage.  Optimized to reduce memory allocations with Builder. Benchmarked and optimized around common cases.  We're on par with the fastest packages (that have less features) and much faster than others. We also benchmarked against code snippets. Using string builders to reduce memory allocation and reordering boolean checks for the common cases have a large performance impact.  Hopefully I was fair to each library and happy to rerun benchmarks differently or reword my commentary based on suggestions or updates.  If every nanosecond matters and this is used in a tight loop, use segment.io's libraries (https://github.com/segmentio/go-snakecase and https://github.com/segmentio/go-camelcase). They lack features, but make up for it by being blazing fast. Alternatively, if you need your code to work slightly differently, fork them and tailor it for your use case.  If you don't like having external imports, I get it. This package only imports packages for testing, otherwise it only uses the standard library. If that's not enough, you can use this repo as the foundation for your own. MIT Licensed.  This package is still relatively new and while I've used it for a while personally, it doesn't have the miles that other packages do. I've tested this code agains't their test cases to make sure that there aren't any surprises.  If you are migrating from from another package, you may find slight differences in output. To reduce the delta, you may find it helpful to use the following custom casers to mimic the behavior of the other package.
Keywords: camelcase|golang|kebab-case|snake-case|string-case|string-casing