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?

  • sbinet@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    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
    link
    fedilink
    English
    arrow-up
    2
    ·
    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.mlOPM
      link
      fedilink
      English
      arrow-up
      1
      ·
      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
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        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:<port> … 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.mlOPM
          link
          fedilink
          English
          arrow-up
          1
          ·
          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
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 year ago

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

          • Arghblarg
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            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
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            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.mlOPM
              link
              fedilink
              English
              arrow-up
              1
              ·
              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!

    • Arghblarg
      link
      fedilink
      English
      arrow-up
      2
      ·
      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.