Best of GolangMay 2025

  1. 1
    Video
    Avatar of youtubeYouTube·1y

    Google's Git Killer Is INSANELY Better (and it's open source)

    Explore how JJ, a new version control system written in Rust, offers a fresh approach to version control. Backed by experts and featuring advanced functionalities like automatic rebase, JJ simplifies complex tasks such as branching, merging, and resolving conflicts. With support for familiar commands, JJ promises a more efficient workflow while maintaining compatibility with Git as its underlying database.

  2. 2
    Article
    Avatar of devblogsDevBlogs·1y

    Announcing TypeScript Native Previews

    TypeScript Native Previews are now available, offering a significant speed advantage due to the native port of the TypeScript compiler using Go, shared memory parallelism, and concurrency. This preview can be installed via npm and extends the functionality in Visual Studio Code through a new extension. Although it's still in its early stages with some missing features, developers are encouraged to explore these previews and provide feedback for continued improvements.

  3. 3
    Article
    Avatar of netguruNetguru·1y

    7 Fast Node.js Alternatives That Modern Developers Love in 2025

    Explore fast Node.js alternatives like Deno, Go, Rust, Elixir, Python, ASP.NET Core, and Bun for enhanced performance, security, and scalability in backend development. Each alternative offers unique advantages such as Go's concurrency, Rust's memory safety, and Bun's speed, making them attractive for developers considering a switch from Node.js.

  4. 4
    Video
    Avatar of codeheadCodeHead·1y

    The GO Situation Is CRAZY...

    Golang is under scrutiny due to vulnerabilities exposed by a malicious package. Unlike other ecosystems, Go modules are fetched directly from version control systems without central oversight, making them susceptible to security risks. Users are advised to audit packages thoroughly before installing them as Go lacks built-in safeguards. Despite its simplicity and efficiency, the language's dependency handling is deemed naive.

  5. 5
    Article
    Avatar of threedotslabsThree Dots Labs·1y

    Watermill: from a hobby project to 8k stars on GitHub

    Watermill is a successful open-source event-driven library for Go, achieving over 8,000 stars on GitHub. Its growth from a side project was fueled by addressing real-world problems, maintaining backward compatibility, and active promotion through conferences and blog posts. Watermill emphasizes the importance of clear documentation with real-life examples and a minimal breaking change policy, staying in version 1 for six years.

  6. 6
    Article
    Avatar of hnHacker News·1y

    rzane/docker2exe: Convert a Docker image to an executable

    rzane/docker2exe is a tool that allows users to convert Docker images into executables, which can be distributed easily. Users need Docker, GoLang, and gzip installed on their systems to create binaries. By using docker2exe, you can embed a Docker image into an executable, enabling automatic loading if the required image is not present on a system. This approach is particularly effective for small Docker images, resulting in compact executables.

  7. 7
    Article
    Avatar of communityCommunity Picks·1y

    The fastest Postgres inserts

    This post outlines strategies to enhance PostgreSQL insert operations, sharing benchmarks and optimizations for better throughput and reduced latency. Key takeaways include reducing network latency, using connection pooling efficiently, leveraging batched inserts, and utilizing COPY FROM optimally. The importance of tuning batch sizes for ideal performance is stressed, with further advanced techniques to be explored in upcoming content.

  8. 8
    Article
    Avatar of awegoAwesome Go·1y

    The Art of Resource Pooling in Go

    Resource pooling is a design pattern aimed at improving performance and stability by reusing instances to avoid the overhead of frequent creation and destruction. This post focuses on the connection pool implementation in Go's database/sql package, highlighting key pooling strategies such as resource lifecycle management, concurrency-safe design, and exception handling. Recommendations for optimizing performance and preventing common mistakes are also discussed, with insights into monitoring pool metrics effectively.

  9. 9
    Article
    Avatar of ripplingRippling·1y

    Boosting Development Workflows with git-spice

    Git-spice enhances development workflows by addressing challenges with large pull requests and the drawbacks of atomic PRs. It helps manage stacked pull requests effectively, boosting speed and maintaining code quality. Built by Abhinav Gupta to fit specific needs, it simplifies PR management, facilitating efficient collaboration and enabling better code reviews.

  10. 10
    Video
    Avatar of dreamsofcodeDreams of Code·52w

    Everything that I like, dislike, and plan to change in my tech stack.

    The author reflects on their current tech stack choices for a course web application, opting to use Go, Temple, HTMX, and AlpineJS instead of their usual stack that includes React and Next.js. They discuss the benefits and drawbacks of each technology, such as Go's efficiency, Temple's immaturity in developer tooling, and the complexities of using AlpineJS and HTMX. They also touch on third-party integrations like SQL C, Clarke for authentication, and Stripe for payments, alongside their plans for future changes, including evaluating Alpine Ajax as an alternative to HTMX and considering different payment and email solutions.

  11. 11
    Article
    Avatar of awegoAwesome Go·1y

    Build your own ResponseWriter: safer HTTP in Go

    Learn how to build a custom ResponseWriter in Go to prevent common HTTP handling errors, such as forgetting status codes or improperly modifying headers. This guide shows how to wrap the ResponseWriter to enforce custom rules, making HTTP handlers more secure and maintainable.

  12. 12
    Article
    Avatar of awegoAwesome Go·51w

    JSON Web Tokens in Go

    JWT (JSON Web Tokens) is an open standard for securely transmitting information between parties. The guide covers JWT structure (header, payload, signature), explains the difference between symmetric (HS256) and asymmetric (RS256) signing methods, and provides a complete Go implementation using the golang-jwt library and Echo framework. It demonstrates how to generate RSA keys, create a login endpoint that issues JWTs, implement middleware for token verification, and follows security best practices including using RS256 signing and HTTPS.

  13. 13
    Article
    Avatar of threedotslabsThree Dots Labs·1y

    Unpopular opinions about Go

    The post discusses several unpopular opinions about the Go programming language, emphasizing that while Go is known for its simplicity, complex applications require proper design patterns to avoid becoming unmanageable. It argues against using certain conventional practices like relying solely on the standard library to learn Go, using optional patterns for configuration, and defaulting to the net/http package over specialized router libraries. It also highlights the challenges with project structuring and the use of generics and channels, suggesting that these should be applied contextually rather than dogmatically.

  14. 14
    Article
    Avatar of hnHacker News·52w

    idursun/jjui: Jujutsu UI (jjui) is a Text User Interface (TUI) designed for interacting with the Jujutsu version control system.

    Jujutsu UI (jjui) is a terminal user interface designed for the Jujutsu version control system. It offers features like auto-complete revset changes, rebasing, revision squashing, viewing revision details, bookmarking, and operation logs. jjui supports multiple installation methods including Homebrew, Archlinux, Nix, and Go. The tool encourages contributions and is customizable as per user needs.

  15. 15
    Article
    Avatar of communityCommunity Picks·1y

    octelium/octelium: A next-gen FOSS self-hosted unified zero trust secure access platform that's relevant for the age of AI and dynamic workloads

    Octelium is a next-generation, free and open source, self-hosted platform for unified secure access using zero trust architecture. It serves as a modern alternative to traditional VPNs, enabling secure access to both internal and external resources without the need for pre-shared secrets. It is designed to be scalable and versatile, accommodating use cases like secure tunnels, API gateways, and self-hosted PaaS environments. Octelium operates atop Kubernetes and can be easily deployed on cloud or on-prem infrastructure, providing robust access control and seamless integration with identity providers for authentication.

  16. 16
    Article
    Avatar of communityCommunity Picks·1y

    Introducing Outpost: Open Source Outbound Webhooks and Event Destinations Infrastructure

    Outpost is a self-hostable, open-source infrastructure tool for SaaS and API platforms, enabling reliable delivery of events through webhooks, message queues, and event buses. It offers features like observability, retry logic, and multi-tenancy support, simplifying event delivery while allowing full control over infrastructure, cost, and compliance.

  17. 17
    Article
    Avatar of wundergraphWunderGraph·1y

    Golang sync.WaitGroup: Powerful, but tricky

    The post explores the complexities and nuances of using Golang's sync.WaitGroup for concurrent programming. It highlights common pitfalls like deadlocks and goroutine leaks, emphasizing the importance of correct lifecycle management and using context.Context for cancellation. Additionally, it introduces errgroup.Group as an alternative for coordinated error handling and cancellation in goroutines, offering practical guidance on when to use each. The author also discusses proposals to make WaitGroup more ergonomic and touches on the significance of careful design and testing in concurrency.

  18. 18
    Article
    Avatar of awegoAwesome Go·1y

    A Story of Building a Storage-Agnostic Message Queue

    The post describes the journey of developing VarMQ, a versatile, storage-agnostic message queue system in Golang. Initially started as a learning project, the author identified the need for persistence and flexibility in storage solutions, leading to the creation of VarMQ. This queue system adapts to various databases like Redis, SQLite, and more, allowing developers to scale and manage persistence without tying to a particular database. The author emphasizes the importance of feedback and simplicity in development.

  19. 19
    Video
    Avatar of primeagenThePrimeTime·1y

    HARD truths before switching to Go

    Go, a language praised for simplicity and speed, is adopted by big companies like Microsoft's TypeScript team to enhance performance. Despite its benefits, Go has limitations that include cumbersome error handling, simplistic enums, and lack of sophisticated abstraction mechanisms. Developers from traditional OOP languages may struggle with its inheritance style and new generics. Go is a solid choice for fast, reliable coding but requires an understanding of trade-offs between simplicity and expressiveness.

  20. 20
    Article
    Avatar of golangGo·1y

    Go Cryptography Security Audit

    The Go programming language underwent a security audit by Trail of Bits, focusing on its cryptography packages. The audit highlighted one low-severity issue and several informational findings, primarily concerning timing side-channels and memory management in the legacy Go+BoringCrypto integration. The Go team has addressed these issues in the upcoming Go 1.25 version. The audit validates Go's commitment to developing robust cryptographic libraries, with future plans to enhance post-quantum cryptography and simplify high-level cryptography APIs.

  21. 21
    Article
    Avatar of itnextITNEXT·52w

    JSON Web Tokens in Go

    Explore the implementation of JSON Web Tokens (JWT) in Go, covering the structure and use cases of JWTs, such as authorization and information exchange. Learn about the best practices for securely using and managing JWTs, including signing methods like RS256 and securing token transmission. The post also provides a practical guide to setting up a Go server for issuing and verifying JWTs, discussing crucial components such as headers, payloads, signatures, and the JOSE framework.

  22. 22
    Video
    Avatar of primeagenThePrimeTime·1y

    I'VE HAD ENOUGH!!!

    The author expresses frustration with various programming languages and their handling of syntax and formatting. They specifically criticize Go for its inconsistent handling of new lines and JavaScript for its scientific notation in parseInt. Additionally, the author highlights frustrations with Lua's 'elseif' syntax and JavaScript's use of lambdas, arguing that some design choices in languages lead to increased complexity and inefficiency.

  23. 23
    Article
    Avatar of theregisterThe Register·1y

    From Russia with doubt: Go library's Kremlin ties stoke fear

    Security concerns arise over the use of the Easyjson library, maintained by developers with ties to Russia's VK Group, in numerous open source projects. Although no malicious code has been found, the potential threat of subversion due to geopolitical affiliations poses questions for US public and private sectors. Organizations are encouraged to assess trust and security protocols in open source software, with attention on contributors from nations considered adversaries.

  24. 24
    Article
    Avatar of awegoAwesome Go·1y

    MCP Server

    The MCP Server Module from Yokai is a simple, modular framework for Go applications, providing automatic panic recovery, request logging, tracing, and metrics. It allows registration of MCP resources, templates, prompts, and tools, exposing them locally via Stdio or remotely via HTTP SSE. With features like context hooks and test server, it facilitates easy resource management, request logging, and functional testing.

  25. 25
    Video
    Avatar of youtubeYouTube·1y

    Golang For Hackers: LDAP Injector - Episode 01

    This post initiates a video series aimed at teaching Golang for hackers by demonstrating a basic Golang program for performing Boolean LDAP injection to retrieve a password. The series will explore various advanced topics like dependency injection, error handling, and functional option patterns. The tutorial starts by explaining LDAP injection and uses a Hack the Box ghost machine to demonstrate the process practically.