HTML-to-markdown
This is a robust Golang tool to convert HTML, even entire websites, into clean Markdown. I find it particularly neat for LLM website use cases where structured content is critical.
This is a robust Golang tool to convert HTML, even entire websites, into clean Markdown. I find it particularly neat for LLM website use cases where structured content is critical.
I use `golang.org/x/vuln` for `govulncheck`, Go's official vulnerability scanner. It effectively checks dependencies for known CVEs, critically reducing noise by only reporting issues in called functions.
Capslock is a capability analysis CLI for Go packages, identifying privileged operations a package can access by tracing transitive calls to standard library functions. This helps enforce the Principle of Least Privilege in software development.
This project, `seek-tune`, implements Shazam's song recognition algorithm. It leverages audio fingerprinting to match songs, integrating with Spotify and YouTube for downloading and managing a music library. It's a solid technical dive into the algorithm.
This is a Go library for computing HTML page proximity using Charikar's simhash for similarity fingerprinting. It leverages a BK Tree to efficiently find pages within a defined proximity.
Capslock is a static security linter for Go, designed to analyze what high-privileged operations a package and its transitive dependencies can access. This helps prevent supply chain attacks by highlighting potential over-privileged code paths.
This package from x/text/transform simplifies on-the-fly text transformations. I've often reimplemented this functionality, but it's more robust and easier to use directly from x.
This is a collection of optimized Go compression packages. It provides performant pure-Go implementations for algorithms like zstd, S2 (Snappy replacement), deflate, gzip, and zlib, along with utilities for HTTP compression.
GoCV provides robust Golang bindings for OpenCV 4, enabling computer vision applications in Go. I use it when I need to integrate OpenCV functionalities directly into my Go projects, especially with hardware acceleration via CUDA or OpenVINO.
This repository demonstrates how to call Rust functions from Go using FFI, leveraging `cgo` with both dynamic and static Rust libraries. It provides a clear, practical guide for integrating Rust's performance with Go's concurrency.
Rav1e is an AV1 video encoder, crucial for AVIF image encoding which I'd integrate into a Go library. It aims to be fast and safe, often outperforming libaom for certain use cases.
This is a solid deep-dive into the Go garbage collector's internals. I found it valuable for understanding Go memory management and performance optimization.
This is a nice little article highlighting some tiny nitpicks I have with the Go language. It explores less obvious aspects that experienced Gophers might encounter.
TypeID is a robust, type-safe UUIDv7 extension. It offers K-sortability and embedded type prefixes, making it a superior alternative to standard UUIDs for database primary keys and overall system clarity.
go-fed is a Golang library I rely on for interacting with the Fediverse, providing a solid foundation for building decentralized applications.
This is a Go HTTP middleware for robustly checking and validating JWTs. It extracts and validates tokens from requests, then injects the validated claims into the request context for downstream use.
fsnotify is a solid Go library for cross-platform filesystem event monitoring. It's my go-to for tracking file changes, which can then trigger other actions, like desktop notifications.
This is the essential, free workshop by Dave Cheney for anyone serious about writing high-performance Go. It provides the tools and knowledge to diagnose and resolve performance bottlenecks in Go applications, from benchmarking to understanding hardware and GC.
This GoLang package, `geodist`, provides functions for calculating geographic distances between two lat/lon points using both Haversine and Vincenty algorithms. Vincenty is generally more accurate due to its ellipticity consideration.
Gorse is an open-source, AI-powered recommendation system built in Go. It aims to be a universal solution for integrating recommendations into online services by training models from user interaction data.
This DataDog guide offers a practical, no-nonsense look at Go profiling, tracing, and observability. It's a solid resource for busy gophers wanting to optimize Go internals, from scheduler behavior to GC performance.
This is a Go library for programmatically reading PST (Outlook email folder) files. It handles various PFF formats including PST, OST, and PAB, allowing access to emails, appointments, and contacts.
GoKart is an archived Go security static analysis tool that uses SSA to reduce false positives by tracing variable sources, aiming for better accuracy than other scanners like gosec. I found its approach to taint tracking promising.
Colly is a fast web scraping framework for Go. I appreciate its clean API and the comprehensive set of features it provides, making it a reliable tool for data extraction tasks.
Gorse is an open-source, AI-powered recommendation system written in Go. It offers a universal solution for integrating recommendations into services with various data sources and model types.
This is Ardan Labs' curated list of important Go reading, complementing their training material. It covers a wide range of topics, from foundational concepts and language history to advanced concurrency and distributed systems, making it a solid reference.
CertMagic provides automatic HTTPS for Go programs using Let's Encrypt, offering a robust, one-line solution for fully managed TLS certificate issuance and renewal without manual certificate handling.
bluemonday is a fast, configurable HTML sanitizer for Go. It's an essential tool for protecting web applications from XSS attacks by sanitizing untrusted user-generated content against an allowlist, something I consider crucial for robust security.
This go-recipes repository aggregates numerous useful commands and tools for Go development. It's a pragmatic collection covering everything from testing and dependency management to code generation and build optimization.
This Go library provides robust language detection, accurately identifying the language of both short and long texts. It's designed to overcome common limitations of other solutions, offering offline functionality without external APIs.
go-vcr is a Go library for recording and replaying HTTP interactions, simplifying the creation of fast, deterministic, and accurate tests. I find this essential for mocking external APIs without complex setup.
Geziyor is a Go-based web crawling and scraping framework. It's built for performance, supporting JS rendering and handling high request volumes for extracting structured data efficiently.
This is a thread-safe connection pool for Go's `net.Conn` interface, which I found useful for managing and reusing network connections. It's a maintained fork addressing issues in `fatih/pool`.
Caire is a content-aware image resizing library using seam carving. This technique helps preserve important image features while reducing dimensions, which I find useful for automated content adaptation.
I use godocs.io as an independent fork of the old godoc.org, providing Go package documentation for those of us who prefer it over pkg.go.dev.
This Go library implements Bloom filters, providing a concise, probabilistic data structure for efficient set membership queries. It offers a memory-optimized approach, tolerating a defined false positive rate.
This video demonstrates how to build tamper-proof systems using ImmuDB and Go, leveraging its append-only, cryptographically verified ledger for data integrity. It's a solid choice for verifiable data storage.
Ristretto is a high-performance, memory-bound Go cache. It focuses on contention-free concurrency and cost-based eviction, offering excellent hit ratios and throughput.
Tunny is a Golang library for spawning and managing a goroutine pool, offering a synchronous API to limit work. I find it useful for controlling concurrency in CPU-heavy scenarios.
go-json is a faster JSON encoder/decoder for Go that serves as a drop-in replacement for `encoding/json` while maintaining full compatibility.
I use automaxprocs to automatically configure GOMAXPROCS, ensuring my Go applications running in Linux containers respect CPU quotas for optimal performance and to avoid throttling.
sqlc generates type-safe Go code directly from SQL queries. This means I never have to write database access layers by hand again, significantly streamlining development and reducing errors.
bbolt is an actively maintained fork of Bolt, a pure Go key/value store. It's a simple, fast, and reliable embedded database, ideal for Go projects not needing a full database server.
conprof provides continuous profiling for Go programs, integrating with Prometheus to collect pprof-compatible profiles for identifying performance bottlenecks over time. I find it valuable for persistent performance monitoring of Go services.
I use the Go block profiler to analyze how much time my Go program spends waiting on blocking operations like channel sends/receives and mutex acquisitions. It helps me identify contention points.
goswagger is a golang implementation of Swagger 2.0 (OpenAPI 2.0), offering tools to serialize and deserialize API specifications and generate clients and servers. It's a solid choice for Go-based API development leveraging OpenAPI.
Kong is a command-line parser for Go. I use it for defining complex command-line structures with minimal effort by mapping them directly to Go types using struct tags.
simple-deflicker is a minimalist, easy-to-use tool for deflickering image sequences, particularly timelapses, by applying histogram matching. It effectively smooths brightness transitions caused by camera auto-settings.
dowork is an in-process, general-purpose task queueing system for Go, executing and rescheduling tasks within Goroutines. I find it a straightforward, non-distributed solution for background work.
This is a Go implementation of the k-means clustering algorithm. I use it for partitioning multi-dimensional numeric data into a specified number of clusters.
go-echarts is a robust charting library for Golang, leveraging Apache ECharts for comprehensive data visualization. It provides a clean API to generate various chart types.
Roaring bitmaps are compressed bitmaps, offering significant performance improvements, often hundreds of times faster than traditional methods.
This Go package, `lossy`, helps simulate unreliable network conditions like bandwidth limits, latency, and packet loss. I find it useful for robustly testing applications and network protocols, especially those built on UDP/IP.
This Go library, isbot, identifies non-browser HTTP requests like web crawlers and preview renderers. It inspects the full http.Request for better accuracy than just the User-Agent, prioritizing performance.
go-string provides faster string utility functions for Go, often outperforming standard library equivalents. I find its IndexAll and IndexAllIgnoreCase methods particularly valuable for literal string searches, offering significant speedups over regular expressions.
This "ultimate-go" repo is my comprehensive collection of notes on working with Go, covering everything from language specification and concurrency to design patterns and core computer systems concepts. It's an invaluable personal reference.
Sprig provides over 70 useful template functions for Go templates. It's a solid library for extending Go's native templating capabilities, offering a wide range of utilities.
This is a huge, curated list of Go projects, frameworks, and libraries. It's a solid starting point for discovering useful resources in the Go ecosystem.
This Go library implements the exponential backoff algorithm, essential for resilient retry logic in distributed systems to prevent overwhelming services during transient failures. It's a direct port of Google's HTTP Client Library for Java's implementation.
This is a straightforward online tool to convert JSON snippets into Go struct definitions. It saves time manually defining types for API responses or data structures.
This tool quickly translates `curl` commands into native request code for multiple programming languages, including Go. It's a handy utility for rapidly prototyping API calls in a preferred language.
This Go snippet demonstrates a robust method for capturing CGO stdout output into a bytes.Buffer. It's essential for testing or integrating C libraries that write directly to stdout.
I find `gadget` useful for parsing User-Agent strings. It provides a "common sense" browser and OS name, focusing on the browser engine, which is often more relevant for analytics than hyper-specific versions.
httpretty is a Go package I use to pretty-print HTTP requests and responses directly to the terminal. It's a handy debugging tool, akin to curl --verbose, for observing HTTP traffic in Go applications.
Caire is a robust Go library for content-aware image resizing, leveraging seam carving to intelligently scale images while preserving important visual features. This provides a more sophisticated approach than simple cropping or scaling for adapting images.
Goplay.space is an online Go playground that offers an alternative client-side environment for running Go code. It's unique in that its frontend is built using GopherJS and Vecty.
Colly is my go-to Go-lang scraping framework. It offers a clean API, impressive speed, and handles common scraping complexities like concurrency, caching, and session management efficiently.
go-licenses is a solid utility for Go projects to analyze the dependency tree and report on licenses. It's essential for ensuring compliance and easily collecting all required license documents for redistribution.
Leaves is a pure Go library for prediction with Gradient Boosting Regression Trees models from LightGBM, XGBoost, and scikit-learn. It enables Go applications to use these models without C bindings, offering competitive performance for parallel batch predictions.