All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

Repurposing Go's Module System as a Universal Package Manager for Ruby Gems

By

SPBS

5mo ago· 7 min readenInsight

Summary

A thought experiment exploring how Go's module system (go get) can be repurposed as a universal package manager for other languages like Ruby. By setting GOPATH to a Ruby load path, Go's module fetcher becomes a transport layer that can install Ruby gems. The article discusses how Go's module system accidentally created a content-addressed, transparency-logged package CDN that could be abused for any language, demonstrating the unintended flexibility of Go's package management infrastructure.

Key quotes

· 5 pulled
Here's a thought experiment. What if Ruby had require "github.com/rails/rails" and you used go get to fetch it?
The Go team did not intend this. But it works.
Consider this a gift from the Ghost of Package Managers Yet to Come.
Ruby doesn't care how the files got there.
Go's module system accidentally created a universal, content-addressed, transparency-logged package CDN.
Snippet from the RSS feed
Go’s module system accidentally created a universal, content-addressed, transparency-logged package CDN. You could abuse this for any language.

You might also wanna read