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
-
Search and Analytic Databases
- 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.
-
Search and Analytic Databases
- 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.
-
Programming Languages
Categories
Websites
97
Miscellaneous
96
Testing
88
Networking
84
Meetups
72
Messaging
54
Text Processing
48
Natural Language Processing
47
Machine Learning
39
Science and Data Analysis
34
Security
34
Server Applications
29
E-Books
27
ORM
22
Serialization
21
Template Engines
16
Package Management
16
Query Language
15
Social Media
12
Resource Embedding
12
Gophers
11
Style Guides
9
Microsoft Office
7
OpenGL
6
Performance
6
Stream Processing
4
Database
2
Logging
1
Goroutines
1
Sub Categories
HTTP Clients
320
Free e-books
106
Search and Analytic Databases
96
Transliteration
71
Uncategorized
59
Reddit
54
Tutorials
42
Parsers/Encoders/Decoders
23
Morphological Analyzers
17
Dependency Injection
16
Project Layout
14
E-books for purchase
13
Markup Languages
13
Twitter
11
Tokenizers
10
Translation
9
Formatters
7
Strings
7
Microsoft Excel
6
Regular Expressions
5
Language Detection
4
Slugifiers
3
Guided Learning
2
Caches
2
Keywords
golang
318
go
285
testing
43
golang-library
25
http
22
machine-learning
20
orm
18
json
16
dependency-injection
15
parser
14
database
14
sql
14
docker
13
mysql
12
postgresql
11
golang-package
11
redis
11
library
10
security
10
websocket
10
cli
9
test
9
assertions
8
mock
8
sqlite
8
neural-network
8
framework
8
pubsub
8
http-client
8
nlp
8
rabbitmq
8
event-driven
7
server
7
rest-api
7
template
7
streaming
6
kubernetes
6
message-bus
6
mocking
6
go-library
6
kafka
6
fast
6
template-engine
6
bdd
6
testing-tools
6
html
6
api
6
protobuf
6
tokenizer
6
https
6