A Go package for building Bluetooth Low Energy peripherals and clients using the GATT protocol.
Gatt is a Go package that provides a Bluetooth Low Energy GATT (Generic Attribute Profile) implementation for building BLE peripherals and clients. It allows developers to create services, characteristics, and descriptors, handle connections, and perform BLE operations on Linux and macOS systems. The package solves the need for a native Go solution to interact with BLE devices without relying on external node.js libraries.
Go developers working on IoT projects, embedded systems, or applications that require Bluetooth Low Energy communication, such as wearable devices, sensors, or smart home peripherals.
Developers choose Gatt because it offers a pure Go implementation with cross-platform support, low-level hardware access on Linux, and a straightforward API that mirrors BLE concepts. It's particularly valuable for those who prefer Go's performance and simplicity over node.js alternatives like bleno or noble.
Gatt is a Go package for building Bluetooth Low Energy peripherals
Supports both Linux and macOS with platform-specific options, enabling development on common operating systems without external dependencies.
Uses HCI_CHANNEL_USER for exclusive device access, avoiding interference from system Bluetooth services and allowing fine-grained hardware management.
Provides a clean, Go-native interface for managing GATT services and characteristics, making it intuitive for developers familiar with Go conventions.
Includes sample code like server.go and discoverer.go that demonstrate both peripheral and central functionalities, offering practical starting points.
On Linux, programs must be run as root or have specific capabilities set, adding deployment complexity and security risks.
The macOS version lacks support for subscribing to indications, as noted in issue #32, limiting certain BLE operations.
Locks the BLE device when in use, preventing other applications from accessing it concurrently, which can be restrictive in multi-service environments.
Golang framework for robotics, drones, and the Internet of Things (IoT)
Project Flogo is an open source ecosystem of opinionated event-driven capabilities to simplify building efficient & modern serverless functions, microservices & edge apps.
Lightweight data stream processing engine for IoT edge
⛓️RuleGo is a lightweight, high-performance, embedded, next-generation component orchestration rule engine framework for Go.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.