gonb
gomlx
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gonb
-
Go, Python, Rust, and production AI applications
I've had these strong feelings and the OP describes it really well. Despite being a polyglot programmer, I really struggle with Python, both in expression and performance (unless it's just config for GPUs).
Some of this frustration was recently an "Unpopular Opinion" on the Go Time Podcast regarding Python being great for "data exploration" but not for "data engineering": https://changelog.com/gotime/304#t=3196
I've been yearning for better interactive tooling and ML-related libraries bridge this gap and started using some even in just the last week:
* GoNB (Golang-support for Jupyter notebooks, also from a Googler) https://github.com/janpfeifer/gonb
* That uses Go-Plotly for graphs/UI: https://github.com/MetalBlueberry/go-plotly
* GoMLX (GoNB author is also on that project, many thanks Jan!) https://github.com/gomlx/gomlx
* Hidden at the end of OP is LangChainGo for LLMs, which I haven't used yet: https://github.com/tmc/langchaingo
Pick those up and let's make the Go community stronger together!
-
The Golang Saga: A Coder’s Journey There and Back Again. Part 2: The Data Expedition
When I created a new Jupyter file in Go, I faced a challenge trying to replicate the development process I usually follow with Python. In Python and Jupyter Notebook I can conveniently run code in separate parts, saving previous values in memory and using cells to organize code. This flexibility was missing in Go, and it took me some time to figure out a solution. However, I came across a helpful tutorial that explained how to use caching with the Go Kernel, making the process smoother with gonb.
-
The Golang Saga: A Coder’s Journey There and Back Again. Part 1: Leaving the Shire
I needed one more thing to make myself feel at home, something I usually use with Python. When working with data, I often turned to the Jupyter VSCode extension for its convenience. To my relief, I discovered that a Go kernel existed, tailored perfectly for my needs.
-
GoMLX -- Accelerated ML for Go
Training library, with some pretty-printing. Including plots for GoNB Jupyter notebook.
-
GoNB, a new Jupyter Notebook Kernel for Go
Tutorial (and demo) here. Source code in github.com/janpfeifer/gonb.
gomlx
-
Open source contributions?
Well, since you offered, and you have Python experience, if you are looking for a giant itch to scratch -- actually what started me in this project -- check github.com/gomlx/gomlx.
-
Just how niche is Go?
On that topic, let me advertise an experimental alternative in Go for the ML market: GoMLX -- it uses XLA, same engine that powers TensorFlow and Jax (so presumably same speed/accelerator support). It has a tutorial, examples and already has a working diffusion model -- LLMs coming soon.
-
If you had a wish for a Go project – library, framework, tool, or something else –, what would it be?
A bit experimental still, but moving fast and many examples (even a [Diffusion example](https://github.com/gomlx/gomlx/blob/main/examples/oxfordflowers102/OxfordFlowers102_Diffusion.ipynb)).
-
GoMLX -- Accelerated ML for Go
GoMLX (github.com/gomlx/gomlx) is a fast and (relatively) easy-to-use set of ML libraries built on top of OpenXLA, a just-in-time compiler of numeric computations for CPU, TPU and GPUs.
What are some alternatives?
fleet
xla - A machine learning compiler for GPUs, CPUs, and ML accelerators
Docker - Notary is a project that allows anyone to have trust over arbitrary collections of data
myLG - Network Diagnostic Tool
ipe - An open source Pusher server implementation compatible with Pusher client libraries written in GO
Hugo - The world’s fastest framework for building websites.
weather-project - Weather analyzer pet project
askai - Command Line Interface for OpenAi ChatGPT
Comcast - Simulating shitty network connections so you can build better systems.
Juju - Orchestration engine that enables the deployment, integration and lifecycle management of applications at any scale, on any infrastructure (Kubernetes or otherwise).
Guora - 🖖🏻 A self-hosted Quora like web application written in Go 基于 Golang 类似知乎的私有部署问答应用 包含问答、评论、点赞、管理后台等功能