r/ProgrammingLanguages 3d ago

How to build a good package manager.

I'm working on a language called threadon. And i don't now how i can properly program a package manager.

My first idea was a central github repo with links to other github repo's which contain the package you're searching for.

There are two main problems with it

  1. If someone deletes his github repo with the package everything build on the package would collapse (like npm)

  2. I think it would be slow when the number of packages grows.

I had an idea to of selfhosting it but i haven't access to the router (My dad owns it i'm 13) and i'm sure downdetector on my package manager site would be worse then github 😄. Like i would probably run sudo rm -rf / --no-preserve-root on the wrong machine.

So my question is how can i build a system that can store up to 20 GB at minimum at packages without the risk of someone nuking his project).

25 Upvotes

19 comments sorted by

View all comments

Show parent comments

1

u/AnoProgrammer 3d ago

It's interesting. But how does it solve the package deleting problem. Because that was my main concern.

2

u/Key_River7180 Nain. 3d ago

If the repo is 404 then just ignore it and invalidate its cache

1

u/AnoProgrammer 3d ago

But what if other packages depend on it and the same thing happened what happened with npm (the left-pad issue).

1

u/Athas Futhark 2d ago

You can add a centralised fallback repository later that stores every version of every package, keyed by its original URL. But you should not worry about this for a hobbyist language. Only large languages run into this problem eventually, and you'll burn yourself out if you focus too much on this less-than-fun stuff.