Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free. Learn more →
Top 23 C Golang Projects
-
webview
Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows).
Each platform has it's own webview control available as a shared library installed with the OS.
MacOS has WKWebKit based on WebKit.
Windows has WebView2 based on Edge/Chromium.
Linux has webkit2gtk based on WebKit.
Tools like Tauri use a simple cross-platform single-header abstraction called webview.h[1].
Electron no longer allows Node.js to be called from renderer processes, all communication with Node.js is done via IPC.
In this case, why do we still need Electron? Why does it have to be tied to V8/Node.js?
The fact that Chromium Embedded Framework exists and is third-party makes me think that Chromium wasn't designed for being embedded, and Electron is filling that gap.
This is elucidated here further here https://trac.webkit.org/wiki/WebKit2:
> it's difficult to reuse their work...if another WebKit-based application or another port wanted to do multiprocess based on Chromium WebKit, it would be necessary to reinvent or cut & paste a great deal of code.
It makes me think that perhaps WebKit was the better choice for embedding. The fact that Node used V8 made Chromium the choice, and that Node being called from the renderer was the original way of working. Maybe because WebKit didn't have a build for Windows was an issue too...
But now that we have Bun, perhaps it's time that WebKit becomes that browser target of choice for desktop apps on macOS.
Unless WebView2 for macOS arrives, which would have a more sane cross-platform story. WebView2 has a very large feature-set though which make take a while to implement for macOS.
[1]: https://github.com/webview/webview/blob/master/webview.h
-
ecapture
Capture SSL/TLS text content without a CA certificate using eBPF. This tool is compatible with Linux/Android x86_64/Aarch64.
Project mention: Capture SSL/TLS text content without CA cert using eBPF. supports Linux/Android x86_64/Aarch64. | /r/blueteamsec | 2023-03-04 -
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
Themis
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
-
-
-
Project mention: Raylib is a simple and easy-to-use library to enjoy videogames programming | news.ycombinator.com | 2023-07-04
Raylib is awesome! It reminds me of the old school days of using BlitzBASIC to get things drawn on screen because it's easy and so much fun. This is how programming used to be, no fuss, just easy to use libraries.
I currently use Raylib with Go and the Go bindings[1] to create screensavers for Linux and I'm really happy with the results.
I even use it at work to draw interactive infrastructure diagrams that animate dependencies, allow controlling start-up etc. It's really flexible and simpler than anything else I've found to get stuff on-screen. I love it!
-
IconFontCppHeaders
C and C++ headers, C# and Python classes, Rust files and Go package for icon fonts Font Awesome, Fork Awesome, Google Material Design, Pictogrammers Material Design icons, Kenney game icons, Fontaudio and Codicons.
I am using C# and Silk.NET, which uses ImGuiNET for ImGui. I got the icon fonts and "header" files from https://github.com/juliettef/IconFontCppHeaders
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
felix
Project Calico's per-host agent Felix, responsible for programming routes and security policy.
-
Project mention: Announcing go-vk: A Go binding for the Vulkan graphics API | /r/golang | 2023-03-06
What’s the difference between this and Vulkan-go?
-
libplctag
This C library provides a portable and simple API for accessing Allen-Bradley and Modbus PLC data over Ethernet.
-
-
-
This work wasn't possible without https://github.com/sijms/go-ora and the amazing Oracle XE Docker images which Gerald Venzl put together: https://geraldonit.com/2021/08/15/oracle-xe-docker-images/. There's also https://github.com/godror/godror, but the main Benthos release is strictly CGo-free.
-
-
-
One person recommended https://github.com/gen2brain/go-fitz. Maybe that works better(?).
-
Project mention: Launch HN: Odigos (YC W23) – Instant distributed tracing for Kubernetes clusters | news.ycombinator.com | 2023-01-19
The BPF instrumentation is quite cool! I wonder if uprobes have a performance impact. Does it roughly compare to a single syscall?
https://github.com/keyval-dev/opentelemetry-go-instrumentati...
-
-
-
Project mention: Nuklear – A single-header ANSI C immediate mode cross-platform GUI library | news.ycombinator.com | 2022-12-23
Yes, I found it by accident, because I dug into a Go code base I don't even use for fun, because I wondered about how they do audio, noticed it wasn't actually cross-platform. So I wondered if it's solved overall and found this, which seems to be the most straight-forward way of supporting pretty much all platforms that Go supports. Not completely sure about Plan 9 though.
-
nginx-link-function
It is a NGINX module that provides dynamic linking to your application in server context and call the function of your application in location directive
-
Project mention: Hi everyone, How could you find the lines executed for a particular method call in any language (java, go..) using eBPF? | /r/eBPF | 2023-02-21
Not sure that you could in any language. Need runtime reflection to have metadata about the original source code. Java and go both have runtime reflection, so it is possible for those languages and go’s auto-instrumentation implementation of OpenTelemetry uses eBPF for exactly that purpose.
-
joker
Joker can turn process into daemon. Zero-Configuration. Joker可以将进程变成守护进程. 无需配置. (by txthinking)
The same developer has also created another handy utiluty called Joker.
-
Mergify
Updating dependencies is time-consuming.. Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.
C Golang related posts
- Ask HN: Do we still need Electron?
- A currently maintained fork of SSHFS
- Xsel: A XPath 1.0 Go library/CLI that can query XML, HTML, and JSON documents
- Good code is like a love letter to the next developer who will maintain it
- Brute-forcing a macOS user’s real name from a browser using mDNS
- Help with understanding awk code
- OpenBSD cron(8) now supports random ranges with steps
-
A note from our sponsor - Mergify
blog.mergify.com | 24 Sep 2023
Index
What are some of the best open-source Golang projects in C? This list will help you:
Project | Stars | |
---|---|---|
1 | webview | 11,488 |
2 | ecapture | 7,198 |
3 | Themis | 1,749 |
4 | glfw | 1,433 |
5 | libcsp | 1,267 |
6 | raylib-go | 1,067 |
7 | IconFontCppHeaders | 975 |
8 | felix | 923 |
9 | vulkan | 704 |
10 | libplctag | 582 |
11 | go-libtor | 514 |
12 | sqlite | 496 |
13 | godror | 459 |
14 | c4go | 338 |
15 | go-sqlite-lite | 330 |
16 | go-fitz | 300 |
17 | opentelemetry-go-instrumentation | 260 |
18 | go-tree-sitter | 257 |
19 | gohook | 242 |
20 | malgo | 228 |
21 | nginx-link-function | 221 |
22 | opentelemetry-go-instrumentation | 170 |
23 | joker | 170 |