C Golang

Open-source C projects categorized as Golang

Top 23 C Golang Projects

  • webview

    Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows).

    Project mention: Ask HN: Do we still need Electron? | news.ycombinator.com | 2023-09-12

    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.

  • glfw

    Go bindings for GLFW 3 (by go-gl)

  • libcsp

    A concurrency C library 10x faster than Golang.

  • raylib-go

    Go bindings for raylib, a simple and easy-to-use library to enjoy videogames programming.

    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!

    [1]: https://github.com/gen2brain/raylib-go

  • 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.

    Project mention: Loading an icon font does not work in Dear ImGui! | /r/gameenginedevs | 2023-01-06

    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.

  • vulkan

    Vulkan API bindings for Go programming language (by vulkan-go)

    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.

    Project mention: C# HMI and Allan Bradley PLC | /r/PLC | 2023-05-21
  • go-libtor

    Self-contained Tor from Go

  • sqlite

    Go SQLite3 driver (by crawshaw)

  • godror

    GO DRiver for ORacle DB

    Project mention: Oracle DB support in Benthos | /r/golang | 2022-10-07

    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.

  • c4go

    Transpiling C code to Go code

  • go-sqlite-lite

    SQLite driver for the Go programming language

  • go-fitz

    Golang wrapper for the MuPDF Fitz library

    Project mention: Where do you look for Go packages? | /r/golang | 2023-05-26

    One person recommended https://github.com/gen2brain/go-fitz. Maybe that works better(?).

  • opentelemetry-go-instrumentation

    OpenTelemetry auto-instrumentation for Go applications

    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?


  • go-tree-sitter

    Golang bindings for tree-sitter https://github.com/tree-sitter/tree-sitter

  • gohook

    GoHook, Go global keyboard and mouse listener hook

  • malgo

    Mini audio library

    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.


  • opentelemetry-go-instrumentation

    OpenTelemetry Auto Instrumentation using eBPF (by open-telemetry)

    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)

    Project mention: Tip: Easy way to create services without systemd | /r/linux | 2022-12-17

    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.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-09-12.

C Golang related posts


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
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.