Blaze is a secure, decentralized, fast and awesome package manager for people who like to shower
Used Github Copilot for coding
Blaze is a secure, decentralized, fast and awesome package manager for people who like to shower
Used Github Copilot for coding
I built an archive (zip/tar.gz) based package manager in Go! it can add packages, remove them, switch between version. It automatically handles the path updating and cleans them up if you run cleanup. The hardest part in this project was creating the adding function since many times the JSON handling broke. but also the cleanup part was hard because one time i nuked my whole registry so I had to play around with that. I am very proud of how fast it is but it is due to Go’s excellency then my skill lmao
Now you can easily switch between packages (e.g from gh 2.87.2 to 2.87.3 and so on) also cleanup wasn’t cleaning up the left over folders properly so I fixed that and also now I am ready to ship the first release, finally write the README and also make the github repository public. After that I wil start writing the website
Log in to leave a comment
After thourghly testing I noticed that a lot of stuff breaks sometimes. So here is what I have done in the last 3 hours:
Log in to leave a comment
I implemented tons of features like removing, listing and cleanup. The main problem I was encountering was that the handler was selecting the first version at the top instead of the one for the OS itself. also I somehow broke the SHA256 checker so I also fixed that
.
I will finish up the remaining parts and edge cases (e.g Registry corruption) and then I will release the right binaries for the windows and linux systems (idk if it will work on macos). After that I will start making the website for blaze with documentation and troubleshooting and stuff yk
Log in to leave a comment
It can actually add stuff now! I mean real stuff which get added to the enviroment variables once it’s downloaded. I have also implemented remove and listing and switching which are a bit wonky tbh and I also have to work on edge case.
So the plan for now is to implement better command support and handle dge cases, then package it and work on docs! Below u can see the add implementation
Log in to leave a comment
I am switching over to Go because Zig is getting to complicated for me. Also cross compilation Go is very easy, you don’t even need an extra laptop with macos or a vm with linux to get binaries for both platforms. Here is an Image showing how my tests are passing! so this should work now. As of know I am still working on making the add feature actually good, like removing failed installs and so on. so basically i will probably work on getting an mvp like removing, resolving version conflicts and stuff i mentioned in earlier devlogs. Also I wil prob start to like devlog more often
Log in to leave a comment
So right now I am defining the JSON manifest on how it should look like! so basically the add function should parse all the input fields and look at the json for invalid data and so on so it can “sanatize it for the next step. The Manifest itself should contain direct “ZIP” links for diffrerent OSes yk? I think the whole JSON should contain the following:
Name, Version, Decription, Tags, Author, Code Repo (if existent), respective links to different OS packages, SHA256, and other stuff that like tells where the bin is or smthing. Below you will see the blaze add command will look like
Log in to leave a comment
So I layed out the core concept of the whole thing and also worked on how the system would work (will be changed in the future).
So basically you have the package manager itself. It will be written in Zig for speed and safety and because I don’t trust C. Also most of the C libraries will work fine in Zig (yes zig is c compatible!). So the idea is that the User will type in “blaze add https://coolpkg.com/coolpkg.json” and then the package manager will read the json to like learn about the package and then set it up for the system. After that it will add that to the enviroment variables. lets dive a bit deeper:
you just add it with: “blaze add https://coolpkg.com/coolpkg.json”. The cool thing about this json will be something that points to the portable version of the app and this means that it won’t require admin rights such as MSI’s mostly do. Also we will be prob implementing SHA256 verification and also raise flags for non http downloads.
I am thinking more of like an thing where we basically copy nvm-style where you can specify:
“blaze use [email protected]” or something like that so we basically install a copy of the thing yk?
This is pretty straightforward ngl, you just “blaze remove node” and boom! If you have multiple stuff it says: “You have multiple versions of ! Please specify via appname@version or use –all to remove all!” and problem solved.
Nothing fancy. It’s all stored in a json, because i feel and sqlite database is overkill for something like this.
Size matters. Since I am using Zig i am not worried about size
Right now I will prob setup the Zig project and also get on with creating cli args
Log in to leave a comment