Use Mac APIs and build Mac apps with Go

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • objc

    objc implements access to the Objective-C runtime and Cocoa on Mac OS X from within Go

  • I've actually been working on this (and so many other things) for a few years. I even found an Objective-C bridge for Go by a Danish fellow named Mikkel from 2013, except... it didn't work.

  • variadic

    Go library for interfacing with variadic C functions

  • Unfortunately, the method calling functions in libobjc, to be generic to any method call, are variadic (takes arbitrary number of arguments). Cgo doesn't support variadic function calls! So Mikkel did an assembly hack to make nearly any variadic C function callable. Amazing! But since 2013, changes to the Go runtime broke this and he had long since moved on to other projects.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • macdriver

    Native Mac APIs for Go. Soon to be renamed DarwinKit!

  • If you work with Apple devices and you're a Go programmer, or are thinking about learning Go, we just got some new powers that are pretty cool. Today I'm releasing an alpha of macdriver, an Objective-C bridge for Go with bindings to common Mac APIs.

  • webview

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

  • Last year I started an alternative Electron stack in Go using the webview project, which uses your platform's native browser engine and makes a window with a webview. While absolutely simple and cross platform, the project has not been prioritizing any platform specific functionality.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts