awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
progrium avatar

progrium/darwinkit

0
View on GitHub↗
5,428 stars·174 forks·Go·MIT·5 vues

Darwinkit

Darwinkit est une couche d'interopérabilité Cgo et une bibliothèque de bindings natifs qui permet aux applications Go d'appeler les frameworks Apple et les API système. Il fonctionne comme un pont entre le runtime Go et les symboles natifs compatibles C pour faciliter la programmation système macOS et le développement d'applications natives.

Le projet inclut un générateur de bindings Objective-C qui scanne les bases de données de symboles système pour produire du code source et des constantes Go. Cet outil permet l'inspection des symboles de framework et la gestion des modules de binding pour maintenir des interfaces à jour avec les frameworks natifs.

La bibliothèque fournit un système de gestion mémoire pour coordonner les cycles de vie des objets natifs au sein de Go. Cela couvre l'utilisation du comptage de références, la création d'autorelease pools pour gérer les objets différés, et l'application de finaliseurs pour prévenir les fuites de mémoire.

Il prend également en charge l'interaction directe avec le système d'exploitation via des appels système en binding direct et des requêtes d'informations noyau.

Features

  • Go-C Bridges - Implements a Cgo-based foreign function interface to bridge the Go runtime with native C-compatible symbols.
  • Cgo Native Interop - Provides the core Cgo interop layer that allows Go applications to call native C-compatible symbols.
  • Framework Symbol Generation - Ships a generator that produces Go source code and constants by scanning Apple framework symbol databases.
  • Native macOS API Bridges - Provides native API bridges that allow Go to build macOS applications by accessing Apple frameworks.
  • macOS System Programming - Facilitates interaction with low-level macOS kernel functions and system status for deep integration.
  • Native System Interfacing - Provides the runtime capability to execute native Apple framework code and system commands.
  • Platform API Access - Provides pre-defined mappings for accessing low-level macOS operating system functions.
  • System Call Bindings - Provides type-safe Go bindings for low-level kernel and system API interactions.
  • Objective-C Symbol Binding Generators - Provides a generator that scans system symbol databases to produce Go source code and constants for native frameworks.
  • Native Memory Lifecycle Management - Coordinates the lifecycle of native Apple objects using manual reference counting within the Go runtime.
  • Managed-to-Native Function Calls - Enables invoking native Apple framework functions and classes from managed Go code.
  • Reference Counting - Implements reference counting with explicit retain and release calls to prevent native memory leaks.
  • Binding Module Management - Includes utilities to initialize package directories and regenerate binding files to keep native interfaces current.
  • Type-Safe Binding Generators - Automatically creates type-safe Go bindings and glue code from native system symbol definitions.
  • Symbol Filtering - Provides tools to search and filter native framework symbols to locate specific types and constants.
  • Scoped Memory Pools - Implements scoped memory pools that automatically release deferred objects upon exiting a defined block of code.
  • Native Object Retention - Increments reference counts and attaches finalizers to ensure native objects persist during asynchronous execution.
  • Finalizer Hooks - Uses Go runtime finalizers to ensure native system resources are freed when Go objects are collected.
  • GUI Frameworks - Builds native macOS applications.

Historique des stars

Graphique de l'historique des stars pour progrium/darwinkitGraphique de l'historique des stars pour progrium/darwinkit

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Darwinkit

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Darwinkit.
  • visualfc/goqtAvatar de visualfc

    visualfc/goqt

    1,471Voir sur GitHub↗

    Goqt is a cross-platform desktop GUI library and interoperability framework that provides Go bindings for constructing native graphical user interfaces. It enables developers to build desktop software that runs natively across multiple operating systems from a single codebase by integrating with mature graphics libraries and widget components. The library relies on a C-based language bridge and code-generated wrapper bindings to proxy method calls, signals, and slots between Go code and native C++ objects. It incorporates a custom event routing mechanism for dispatching user interface events

    Go
    Voir sur GitHub↗1,471
  • java-native-access/jnaAvatar de java-native-access

    java-native-access/jna

    8,916Voir sur GitHub↗

    JNA is a foreign function interface and native memory mapper that allows Java applications to call functions in shared native libraries without writing custom JNI wrapper code. It serves as a JNI alternative framework for invoking C functions and mapping native data structures using high-level interfaces. The library distinguishes itself through its ability to translate Java objects and primitives into C-style structs, unions, and pointers for cross-platform memory exchange. On Windows, it provides a dedicated toolkit for interacting with Component Object Model objects using both early and la

    Java
    Voir sur GitHub↗8,916
  • confluentinc/confluent-kafka-goAvatar de confluentinc

    confluentinc/confluent-kafka-go

    5,144Voir sur GitHub↗

    This is a Go language client library for Apache Kafka, providing the tools necessary to produce and consume messages from Kafka brokers. It serves as a Kafka client implementation for building applications that integrate with Kafka for real-time data streaming and messaging. The library includes support for validated cryptographic modules to ensure network connections meet federal security and encryption standards for FIPS compliance. The client provides capabilities for asynchronous message production with delivery reports and message consumption using balanced consumer groups and regex sub

    HTMLconfluentconsumergolang
    Voir sur GitHub↗5,144
  • getlantern/systrayAvatar de getlantern

    getlantern/systray

    3,707Voir sur GitHub↗

    systray is a Go library used to create and manage icons and menus within the operating system notification area. It functions as a cross-platform GUI library that provides a persistent application entry point and a notification area menu manager. The library enables the creation of hierarchical menus and custom tray icons across different desktop operating systems. It supports the use of nested submenus and allows for the styling of individual menu entries with custom images. The toolset covers a range of interaction capabilities, including the management of menu item states through checked

    Go
    Voir sur GitHub↗3,707
Voir les 30 alternatives à Darwinkit→

Questions fréquentes

Que fait progrium/darwinkit ?

Darwinkit est une couche d'interopérabilité Cgo et une bibliothèque de bindings natifs qui permet aux applications Go d'appeler les frameworks Apple et les API système. Il fonctionne comme un pont entre le runtime Go et les symboles natifs compatibles C pour faciliter la programmation système macOS et le développement d'applications natives.

Quelles sont les fonctionnalités principales de progrium/darwinkit ?

Les fonctionnalités principales de progrium/darwinkit sont : Go-C Bridges, Cgo Native Interop, Framework Symbol Generation, Native macOS API Bridges, macOS System Programming, Native System Interfacing, Platform API Access, System Call Bindings.

Quelles sont les alternatives open-source à progrium/darwinkit ?

Les alternatives open-source à progrium/darwinkit incluent : visualfc/goqt — Goqt is a cross-platform desktop GUI library and interoperability framework that provides Go bindings for constructing… java-native-access/jna — JNA is a foreign function interface and native memory mapper that allows Java applications to call functions in shared… confluentinc/confluent-kafka-go — This is a Go language client library for Apache Kafka, providing the tools necessary to produce and consume messages… getlantern/systray — systray is a Go library used to create and manage icons and menus within the operating system notification area. It… nativescript/nativescript — NativeScript is a cross-platform mobile development framework that enables the creation of native iOS and Android… nix-rust/nix — nix is a Unix system API library and Rust system programming interface that provides type-safe bindings for invoking…