cross-posted from: https://lemmy.ml/post/2230752

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?

  • Oliver Lowe@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    Because it’s relevant and I’d love to see Lemmy get more popular, I’ll post olowe.co/lemmy which provides a Client to the Lemmy HTTP API.

    A little unusual is that I created a filesystem interface using io/fs. See FS. I used that to create an alternative Lemmy frontend for a kinda obscure text editor I use. See https://lemmy.sdf.org/post/1035382 For example the comments of that post are available at the path:

    plan9@lemmy.sdf.org/1035382/comments
    

    Only a small amount of the Lemmy API functionality is implemented but I’m filling it out slowly. Any patches appreciated ;)

  • tigerwill90@lemm.ee
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 year ago

    Hey, I’m happy to share with you a project I’ve been dedicated to for the past few months: Fox.

    https://github.com/tigerwill90/fox

    Fox is a lightweight HTTP router that provides an API similar to well-known projects such as Gin and Echo. But Fox has a unique strength: it supports mutations on its routing tree at runtime, while concurrently handling requests. It accomplishes this using a Concurrent Radix Tree, which supports lock-free reads and concurrent writes.

    It is especially designed for applications that require changes at runtime to their routing structure based on user input, configuration changes, or other runtime events but it’s also suitable for other use cases. The routing rules are relatively flexible, and in most scenarios, Fox outperforms Gin in terms of performance.

    While the project is not yet at v1, I’ve already put it to the test. At my workplace, we use Fox for our main API gateway, handling millions of requests daily.

    I’d love to get your feedback and insights, so please feel free to check it out and let me know your thoughts.

    • whouOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Cool project! That readme gives me a “I like your funny words, magic man” reaction, but I know it’s just because I am not that much into networking and concurrent stuff lol

      Those benchmarks already speaks for themselves, and the fact that you are using it in your workplace already shows the awesomeness of your project :)

      • tigerwill90@lemm.ee
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        Thank you for your kind words! I completely agree that the README might be a bit unnecessarily heavy on technical jargon. I appreciate you pointing that out - I will work on making it more comprehensible.

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

    It’s supposed to have simple and easy to read code, so that you can easily hack and modify for your own needs :)

  • DanHulton@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Not a big, fancy project, but over the past couple days, I put together a configuration file for Karibiner Elements (Mac software that lets you rebind your keys at the OS level) to allow you to type with just your left hand, using spacebar, caps lock, and the touchpad as modifier keys: https://github.com/DanHulton/Karibiner-Carpal-Tunnel-Right

    I’ve been experiencing some carpal tunnel in my right hand, and wanted to avoid using it. That’s hard when you have to type all day, but with this config file, I can! (albeit much, much slower.) Since Karibiner config files are just json, editing them directly can get heinous, so I wrote a small Typescript program to take a simple mapping and turn it into a config file in the correct format.

    (Why no right-hand config? There’s already an alternative keyboard layout that just mirrors the keyboard, and right right side has more keys – so you can use that mirror config just fine if you want to avoid using your left hand, but trying to avoid using your right hand means you need more modifiers to get even just the basic keys correct.)