An open API service indexing awesome lists of open source software.

zero-alloc-awesome-go

Zero Allocation Golang Packages / Stuff
https://github.com/cloudxaas/zero-alloc-awesome-go

Last synced: 15 days ago
JSON representation

  • Messaging

      • Uniqush-Push - Redis backed unified push service for server-side notifications to mobile devices.
      • Watermill - Working efficiently with message streams. Building event driven applications, enabling event sourcing, RPC over messages, sagas. Can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog.
      • zmq4 - Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2).
      • Benthos - A message streaming bridge between a range of protocols.
      • sarama - Go library for Apache Kafka.
      • NATS Go Client - Lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library.
      • pubsub - Simple pubsub package for go.
  • Microsoft Office

    • Microsoft Excel

      • exl - Excel binding to struct written in Go.(Only supports Go1.18+)
      • go-excel - A simple and light reader to read a relate-db-like excel as a table.
      • goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files.
      • xlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs.
      • xlsx - Fast and safe way to read/update your existing Microsoft Excel files in Go programs.
      • excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files.
      • unioffice - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents.
  • Miscellaneous

    • Dependency Injection

      • alice - Additive dependency injection container for Golang.
      • dig - A reflection based dependency injection toolkit for Go.
      • dingo - A dependency injection toolkit for Go, based on Guice.
      • do - A dependency injection framework based on Generics.
      • fx - A dependency injection based application framework for Go (built on top of dig).
      • gocontainer - Simple Dependency Injection Container.
      • goioc/di - Spring-inspired Dependency Injection Container.
      • GoLobby/Container - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language.
      • google/wire - Automated Initialization in Go.
      • HnH/di - DI container library that is focused on clean API and flexibility.
      • kinit - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization.
      • linker - A reflection based dependency injection and inversion of control library with components lifecycle support.
      • nject - A type safe, reflective framework for libraries, tests, http endpoints, and service startup.
      • wire - Strict Runtime Dependency Injection for Golang.
      • di - A dependency injection container for go programming language.
      • di - A dependency injection container for go programming language.
    • Project Layout

      • ardanlabs/service - A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications.
      • cookiecutter-golang - A Go application boilerplate template for quick starting projects following production best practices.
      • go-module - Template for a typical module written on Go.
      • go-sample - A sample layout for Go application projects with the real code.
      • go-starter - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers.
      • go-todo-backend - Go Todo Backend example using modular project layout for product microservice.
      • gobase - A simple skeleton for golang application with basic setup for real golang application.
      • golang-standards/project-layout - Set of common historical and emerging project layout patterns in the Go ecosystem. Note: despite the org-name they do not represent official golang standards, see [this issue](https://github.com/golang-standards/project-layout/issues/117) for more information. Nonetheless, some may find the layout useful.
      • golang-templates/seed - Go application GitHub repository template.
      • insidieux/inizio - Golang project layout generator with plugins.
      • modern-go-application - Go application boilerplate and example applying modern practices.
      • pagoda - Rapid, easy full-stack web development starter kit built in Go.
      • scaffold - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented.
      • wangyoucao577/go-project-layout - Set of practices and discussions on how to structure Go project layout.
    • Strings

      • bexp - Go implementation of Brace Expansion mechanism to generate arbitrary strings.
      • caps - A case conversion library.
      • go-formatter - Implements **replacement fields** surrounded by curly braces `{}` format strings.
      • gobeam/Stringy - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc.
      • strutil - String utilities.
      • sttr - cross-platform, cli app to perform various operations on string.
      • xstrings - Collection of useful string functions ported from other languages.
    • Uncategorized

      • go-openapi - Collection of packages to parse and utilize open-api schemas.
      • VarHandler - Generate boilerplate http input and output handling.
      • anagent - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection.
      • antch - A fast, powerful and extensible web crawling & scraping framework.
      • archiver - Library and command for making and extracting .zip and .tar.gz archives.
      • autoflags - Go package to automatically define command line flags from struct fields.
      • avgRating - Calculate average score and rating based on Wilson Score Equation.
      • banner - Add beautiful banners into your Go applications.
      • base64Captcha - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha.
      • basexx - Convert to, from, and between digit strings in various number bases.
      • battery - Cross-platform, normalized battery information library.
      • bitio - Highly optimized bit-level Reader and Writer for Go.
      • browscap_go - GoLang Library for [Browser Capabilities Project](https://browscap.org/).
      • captcha - Package captcha provides an easy to use, unopinionated API for captcha generation.
      • common - A library for server framework.
      • conv - Package conv provides fast and intuitive conversions across Go types.
      • datacounter - Go counters for readers/writer/http.ResponseWriter.
      • faker - Fake data generator.
      • faker - Random fake data and struct generator for Go.
      • ffmt - Beautify data display for Humans.
      • go-commandbus - A slight and pluggable command-bus for Go.
      • go-commons-pool - Generic object pool for Golang.
      • go-resiliency - Resiliency patterns for golang.
      • go-unarr - Decompression library for RAR, TAR, ZIP and 7z archives.
      • gofakeit - Random data generator written in go.
      • gommit - Analyze git commit messages to ensure they follow defined patterns.
      • gopsutil - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc).
      • gosh - Provide Go Statistics Handler, Struct, Measure Method.
      • gosms - Your own local SMS gateway in Go that can be used to send SMS.
      • gotoprom - Type-safe metrics builder wrapper library for the official Prometheus client.
      • gountries - Package that exposes country and subdivision data.
      • gtree - Provide CLI, Package and Web for tree output and directories creation from Markdown or programmatically.
      • health - A simple and flexible health check library for Go.
      • health - Easy to use, extensible health check library.
      • healthcheck - An opinionated and concurrent health-check HTTP handler for RESTful services.
      • hostutils - A golang library for packing and unpacking FQDNs list.
      • indigo - Distributed unique ID generator of using Sonyflake and encoded by Base58.
      • lk - A simple licensing library for golang.
      • llvm - Library for interacting with LLVM IR in pure Go.
      • metrics - Library for metrics instrumentation and Prometheus exposition.
      • morse - Library to convert to and from morse code.
      • numa - NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code.
      • openapi - OpenAPI 3.x parser.
      • pdfgen - HTTP service to generate PDF from Json requests.
      • persian - Some utilities for Persian language in go.
      • sandid - Every grain of sand on earth has its own ID.
      • shellwords - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell.
      • shortid - Distributed generation of super short, unique, non-sequential, URL friendly IDs.
      • shoutrrr - Notification library providing easy access to various messaging services like slack, mattermost, gotify and smtp among others.
      • sitemap-format - A simple sitemap generator, with a little syntactic sugar.
      • stateless - A fluent library for creating state machines.
      • stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...
      • turtle - Emojis for Go.
      • url-shortener - A modern, powerful, and robust URL shortener microservice with mysql support.
      • varint - A faster varying length integer encoder/decoder than the one provided in the standard library.
      • xdg - FreeDesktop.org (xdg) Specs implemented in Go.
      • xkg - X Keyboard Grabber.
      • xz - Pure golang package for reading and writing xz-compressed files.
      • gatus - Automated service health dashboard.
  • Natural Language Processing

    • Language Detection

      • detectlanguage - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection.
      • getlang - Fast natural language detection package.
      • guesslanguage - Functions to determine the natural language of a unicode text.
      • whatlanggo - Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc).
    • Morphological Analyzers

      • go-stem - Implementation of the porter stemming algorithm.
      • go2vec - Reader and utility functions for word2vec embeddings.
      • golibstemmer - Go bindings for the snowball libstemmer library including porter 2.
      • gosentiwordnet - Sentiment analyzer using sentiwordnet lexicon in Go.
      • govader - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment).
      • govader-backend - Microservice implementation of [GoVader](https://github.com/jonreiter/govader).
      • kagome - JP morphological analyzer written in pure Go.
      • libtextcat - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2.
      • nlp - Extract values from strings and fill your structs with nlp.
      • nlp - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis).
      • paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm.
      • porter - This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm.
      • RAKE.go - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE).
      • snowball - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/).
      • spaGO - Self-contained Machine Learning and Natural Language Processing library in Go.
      • spelling-corrector - A spelling corrector for the Spanish language or create your own.
      • porter2 - Really fast Porter 2 stemmer.
    • Slugifiers

      • go-slugify - Make pretty slug with multiple languages support.
      • slug - URL-friendly slugify with multiple languages support.
      • Slugify - Go slugify application that handles string.
    • Tokenizers

      • gojieba - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm.
      • gotokenizer - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation)
      • gse - Go efficient text segmentation; support english, chinese, japanese and other.
      • MMSEGO - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm.
      • prose - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only.
      • segment - Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/)
      • sentences - Sentence tokenizer: converts text into a list of sentences.
      • shamoji - The shamoji is word filtering package written in Go.
      • stemmer - Stemmer packages for Go programming language. Includes English and German stemmers.
      • textcat - Go package for n-gram based text categorization, with support for utf-8 and raw text.
    • Translation

      • go-localize - Simple and easy to use i18n (Internationalization and localization) engine - used for translating locale strings.
      • go-mystem - CGo bindings to Yandex.Mystem - russian morphology analyzer.
      • go-pinyin - CN Hanzi to Hanyu Pinyin converter.
      • gotext - GNU gettext utilities for Go.
      • icu - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1.
      • iuliia-go - Transliterate Cyrillic → Latin in every possible way.
      • spreak - Flexible translation and humanization library for Go, based on the concepts behind gettext.
      • t - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template.
      • go-i18n - Package and an accompanying tool to work with localized text.
    • Transliteration

      • enca - Minimal cgo bindings for [libenca](https://cihar.com/software/enca/), which detects character encodings.
      • go-unidecode - ASCII transliterations of Unicode text.
      • gounidecode - Unicode transliterator (also known as unidecode) for Go.
      • transliterator - Provides one-way string transliteration with supporting of language-specific transliteration rules.
  • Networking

    • HTTP Clients

      • gentleman - Full-featured plugin-driven HTTP client library.
      • go-cleanhttp - Get easily stdlib HTTP client, which does not share any state with other clients.
      • go-http-client - Make http calls simply and easily.
      • go-otelroundtripper - Go http.RoundTripper that emits open telemetry metrics for HTTP requests.
      • go-req - Declarative golang HTTP client.
      • go-retryablehttp - Retryable HTTP client in Go.
      • go-zoox/fetch - A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API.
      • grequests - A Go "clone" of the great and famous Requests library.
      • httpretry - Enriches the default go HTTP client with retry functionality.
      • pester - Go HTTP client calls with retries, backoff, and concurrency.
      • req - Simple Go HTTP client with Black Magic (Less code and More efficiency).
      • request - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency.
      • resty - Simple HTTP and REST client for Go inspired by Ruby rest-client.
      • rq - A nicer interface for golang stdlib HTTP client.
      • sling - Sling is a Go HTTP client library for creating and sending API requests.
      • requests - HTTP requests for Gophers. Uses context.Context and doesn't hide the underlying net/http.Client, making it compatible with standard Go APIs. Also includes testing tools.
      • heimdall - An enhanced http client with retry and hystrix capabilities.
    • Transliteration

      • arp - Package arp implements the ARP protocol, as described in RFC 826.
      • buffstreams - Streaming protocolbuffer data over TCP made easy.
      • canopus - CoAP Client/Server implementation (RFC 7252).
      • cidranger - Fast IP to CIDR lookup for Go.
      • dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315.
      • dns - Go library for working with DNS.
      • dnsmonster - Passive DNS Capture/Monitoring Framework.
      • easytcp - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful.
      • ether - Cross-platform Go package for sending and receiving ethernet frames.
      • ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags.
      • fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http.
      • fortio - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC.
      • ftp - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959).
      • ftpserverlib - Fully featured FTP server library.
      • gaio - High performance async-io networking for Golang in proactor mode.
      • gev - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode.
      • gldap - gldap provides an ldap server implementation and you provide handlers for its ldap operations.
      • gmqtt - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1.
      • gnet - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go.
      • gNxI - A collection of tools for Network Management that use the gNMI and gNOI protocols.
      • go-getter - Go library for downloading files or directories from various sources using a URL.
      • go-powerdns - PowerDNS API bindings for Golang.
      • go-sse - Go client and server implementation of HTML server-sent events.
      • go-stun - Go implementation of the STUN client (RFC 3489 and RFC 5389).
      • gobgp - BGP implemented in the Go Programming Language.
      • golibwireshark - Package golibwireshark use libwireshark library to decode pcap file and analyse dissection data.