6
submitted 1 year ago by whou@lemmy.ml to c/golang@lemmy.ml

I really like seeing people's interesting projects. Even if they are generic or were started just to learn something.

And on top of that, I consider Go to be one of those languages that you can find projects on a pretty diverse range of topics.

So, is there any interesting (or not too) personal Go projects that is in the making, or is already finished?

top 11 comments
sorted by: hot top controversial new old
[-] sbinet@lemmy.ml 3 points 1 year ago
  • star-tex: a TeX engine written in Go (automatically translated from Knuth's WEB description)
  • varda: a WIP photo/video album handler
  • odf: an OpenDocument format handler
[-] Arghblarg@lemmy.ca 2 points 1 year ago

I have two, done to scratch personal itches:

xs, a remote shell, written from the ground up using Go with post-quantum key exchanges, simple tunnel support and anti-traffic analysis 'chaff' experiments - think 'an ssh replacement from a parallel universe'. Big thing is, it leverages Go's excellent crypto and network support to achieve most daily ssh use cases, in <5% of the SLOCC so its design and function can be more easily understood by mere mortals, IMHO :)

bacillμs, a near zero-dependency build/CI server - demo instance here

[-] whou@lemmy.ml 1 points 1 year ago

wow, those are awesome projects! and really usable too!

I actually really liked bacillus. The minimalism is perfect, and seems like a great option to projects that would benefit with its own hosted CI server.

Oh, and while messing with it I accidentally triggered four jobs, oops sorry :P

If I had a server and domain just laying around I certainly would setup one for personal projects. I wonder as well if it would be possible to display the most recent job status in the project's repo interface (maybe with an external image card in the markdown).

[-] Arghblarg@lemmy.ca 2 points 1 year ago* (last edited 1 year ago)

Thanks, glad you checked them out! Don't worry about triggering jobs, it's a demo instance, doesn't hurt if you do some builds. There's a rate limit of 8 jobs concurrently and the build artifacts are cleaned up pretty frequently.

If you wanted to use it as a local build manager thingie, it would be pretty easy to set up in a container (ugh) or locally and just point at localhost: ... with your web browser. But go stuff is usually so easy to build it might not be worth it :)

Unsure what you mean about the recent job status idea -- can you elucidate more? I'm open to cool ideas...

[-] whou@lemmy.ml 1 points 1 year ago

I meant kinda like what GitHub and GitLab have in its UI, showing the job status from the most recent commit:

Though it doesn't even have to be a part of the git repo UI. You can link an image badge in the projects README markdown that fetches the status of the most recent job.

Almost every Big™ Modern™ project on GitHub/GitLab has something like this. For example, bubbletea has a "build passing" badge that is linked with its most recent job from GitHub CI. shields.io has them too.

[-] Arghblarg@lemmy.ca 2 points 1 year ago

Hmm! OK I'll think about how to do that, might be a nice addition. Thanks.

[-] Arghblarg@lemmy.ca 2 points 1 year ago* (last edited 1 year ago)

BTW please have a barf bucket beside you if you examine the source code for bacillus ... it's all inline, raw ad-hoc HTML and javascript to build the UI :). I was thinking of redoing it someday with htmx, without getting too fancy (I am not a web developer and loathe JS in general), but it might add some graceful degradation for non-javascript use of the CI interface (though I don't know if live updates of build status would even be possible/practical without at least some JS).

[-] Arghblarg@lemmy.ca 2 points 1 year ago* (last edited 1 year ago)

Update: done! I added two endpoints that a page (like a github repo's README.md) can fetch to get a simple text/plain "lastStatus:n" or image/jpeg pass/fail icon.

README.md update

I find my browser doesn't always show the newest CI status right away though, even though the server sends the JPG with an HTTP Cache-Control: no-cache. Hmmm.

It's primitive and doesn't give all the nice status in your screenshot above like build time, branch name... I should think about it more I suppose.

Thanks for the idea!

[-] whou@lemmy.ml 1 points 1 year ago

That's actually so awesome! I noticed you're already using it in your other projects that use bacillus.

I hope one day I may use bacillus myself. Keep on with its development!

[-] whou@lemmy.ml 1 points 1 year ago

I would like to point out my project as well:

simpleutils, a small alternative coreutils package. It's the only actual Go project I have right now and it's nothing impressive, but I really am enjoying making it. It's been a blast seeing it being useful in my day-to-day life as well.

[-] Arghblarg@lemmy.ca 2 points 1 year ago

Ooo, neat! I have heard there's a push to build a whole coreutils in Rust, but I'd rather have a Go version if I had to choose to replace the time-tested C versions :) I'll check those out for sure.

this post was submitted on 19 Jul 2023
6 points (100.0% liked)

Go programming language discussion

1276 readers
5 users here now

founded 5 years ago
MODERATORS