Show HN: Ark v0.5.0 – A Minimal, High-Performance Entity Component System for Go

Hacker News (score: 10)
Found: September 10, 2025
ID: 1307

Description

Other
Show HN: Ark v0.5.0 – A Minimal, High-Performance Entity Component System for Go I’ve just released Ark v0.5.0, a lightweight Entity Component System (ECS) library for Go, built with a focus on performance and simplicity.

If you're new to Ark: it's a high-performance Go ECS library with a clean API and zero dependencies. Beyond its core ECS functionality, Ark stands out for ultra-fast batch operations and first-class support for entity relationships.

This release brings notable performance improvements to queries via smarter indexing, plus new methods for sampling random entities. The documentation has been expanded with a chapter on design philosophy and limitations, along with new examples covering advanced topics like entity relations, world locking, spatial indexing, and parallel simulations.

If you’re exploring ECS patterns in Go or looking for a an ECS that delivers performance without sacrificing usability, I’d love to hear your feedback. Contributions are welcome.

Changelog: github.com/mlange-42/ark/blob/main/CHANGELOG.md

More from Hacker

Show HN: TailGuard – Bridge your WireGuard router into Tailscale via a container

Show HN: TailGuard – Bridge your WireGuard router into Tailscale via a container My elderly parents are behind a 5G connection in rural areas, and I help them manage their network from overseas. I found a reasonably priced 5G router that can do external antennas required for it to work, but the only reasonable ways to get access to it is either through OpenVPN or WireGuard, the latter of which is much more lightweight and preferred with the memory constraints of the device.<p>The problem with WireGuard is that it requires handling key management oneself, and configuring the keys to every device you want to access it from. It also doesn&#x27;t play nicely together with other VPNs, meaning I ended up connecting and disconnecting VPNs whenever I wanted to use them. This is especially evident on my phone, which only allows one VPN app at a time.<p>I was already using Tailscale as an easy way to handle homelab access with SSO, even if some computers are behind ISP CGNAT, and came up with this idea of spinning up a Docker container to connect the two. I found some suggestions for it online, but nothing ready to use. It ended up being more work than I expected to fine tune the routing, IPv6, firewall settings, re-resolving the DNS of the router on IP address changes etc.<p>I got it very stable eventually though, and wanted to share with everyone else. I think it&#x27;s cool to have the WireGuard router looking like any other Tailscale node in my tailnet now.

Show HN: An Open Source XR(AR/VR) Operating System

Show HN: An Open Source XR(AR/VR) Operating System We&#x27;re two college students building an XR(AR&#x2F;VR) native Operating System with a custom kernel. We&#x27;re also Open Source so feel free to check our GitHub Repository- <a href="https:&#x2F;&#x2F;github.com&#x2F;manaskamal&#x2F;XenevaOS" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;manaskamal&#x2F;XenevaOS</a> .<p>The journey hasn&#x27;t exactly been easy, we&#x27;ve been criticized by a lot saying that whatever we&#x27;re doing is impractical and that we&#x27;re too ambitious. Regardless, we&#x27;ve been committed to reach our goal.<p>Here to answer all questions and doubts. Answering one question beforehand because we know someone is going to ask it -<p>Q: Why use your own kernel&#x2F; Why don&#x27;t you use Linux&#x2F; Why are you trying to reinvent the wheel?<p>A: Using our own kernel helps us get rid of the baggage of legacy codes, bring the most optimal performance on our target hardware (XR&#x2F;AR&#x2F;VR) and achieve more efficiency than what we would&#x27;ve achieved on an existing kernel.<p>We&#x27;re not trying to reinvent the wheel, but just building Formula One racing tyres for it.

Lessons learned from building a sync-engine and reactivity system with SQLite

Lessons learned from building a sync-engine and reactivity system with SQLite

Git-fetch-file – Sync files from other repos with commit tracking and safety

Git-fetch-file – Sync files from other repos with commit tracking and safety

A memory safe C framework, RAII, I/O, coroutine and other concurrency primitives

A memory safe C framework, RAII, I/O, coroutine and other concurrency primitives

Detekt – A static code analyzer for Kotlin

Detekt – A static code analyzer for Kotlin

Run TypeScript code without worrying about configuration

Run TypeScript code without worrying about configuration

Leveraging Elixir's hot code loading capabilities to modularize a monolithic app

Leveraging Elixir's hot code loading capabilities to modularize a monolithic app

Use keyword-only arguments in Python dataclasses

Use keyword-only arguments in Python dataclasses

No other tools from this source yet.