Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/djthorpe/gopi
Raspberry Pi Go Language Interface
https://github.com/djthorpe/gopi
golang golang-driver golang-library gopi gpio gpio-library i2c i2c-bus lirc opengl-library opengles openvg openvg-library raspberry-pi raspberry-pi-library raspberry-pi-mouse spi
Last synced: 13 days ago
JSON representation
Raspberry Pi Go Language Interface
- Host: GitHub
- URL: https://github.com/djthorpe/gopi
- Owner: djthorpe
- License: bsd-2-clause
- Created: 2015-06-03T08:39:10.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-02-25T00:54:38.000Z (over 1 year ago)
- Last Synced: 2024-10-31T19:23:54.739Z (20 days ago)
- Topics: golang, golang-driver, golang-library, gopi, gpio, gpio-library, i2c, i2c-bus, lirc, opengl-library, opengles, openvg, openvg-library, raspberry-pi, raspberry-pi-library, raspberry-pi-mouse, spi
- Language: Go
- Homepage: http://gopi.mutablelogic.com/
- Size: 20 MB
- Stars: 102
- Watchers: 6
- Forks: 13
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Read me first
| ![GOPI](https://raw.githubusercontent.com/djthorpe/gopi/master/etc/images/gopi-800x388.png) | Go Language Application Framework |
| :--- | :--- |[![CircleCI](https://circleci.com/gh/djthorpe/gopi/tree/v3.svg?style=svg)](https://circleci.com/gh/djthorpe/gopi/tree/v3)
This repository contains an application framework for the Go language, which will allow you to develop applications which utilize a number of features of your computer. It's targetted at the Raspberry Pi presently. The following features are intended to be supported:
* The GPIO, I2C and SPI interfaces
* Font loading and rendering in bitmap and vector forms
* Infrared transmission and receiving, for example for remote controls
* Network microservices, announcement and discovery using mDNS and gRPCIt would also be great to support the following features in the future:
* Image and video encoding/decoding, including utilizing hardware
acceleration
* GPU acceleration for 2D graphics
* 3D graphics
* Audio devices
* Input devices like the mouse, keyboard and touchscreen
* Display and display surfaces, bitmaps and vector graphics
* Connected cameras
* User interface widgets and layout
* Building for Darwin \(Macintosh\) targets## Requirements
The tested requirements are currently:
* Any Raspberry Pi \(v2, v3, v4, Zero and Zero W have been tested\)
* Raspbian GNU/Linux 9 \(other distributions may work, but not tested\)
* Go 1.13In order to use the library, you'll need to have a working version of Go on your Raspberry Pi, which you can [download](https://golang.org/dl/). Then retrieve the library on your device, using:
```bash
go get github.com/djthorpe/gopi/v3
```Some libraries will need to be installed for building, RPC and Media services.
In order to satisfy these dependencies,```bash
sudo apt install make protobuf-compiler libprotobuf-dev
```Other dependencies will be satisfied when running the `make` command.
## Getting Started
In order to get started, build some of the examples in the "cmd" folder. They can be built with the makefile.
* `make all` will build the example commands into the `build` folder;
* `make test` runs all tests for the `pkg` folder;
* `make debian` will create `.deb` packages which can be distributed;
* `make clean` removes build intermediate files.Fuller documentation of the examples and developing your own code against this
framework will be available in [documentation](https://gopi.mutablelogic.com/).## License
> _Copyright 2016-2020 David Thorpe All Rights Reserved_
>
> Redistribution and use in source and binary forms, with or without
> modification, are permitted with some conditions.This repository is released under the BSD License. Please see the file [LICENSE.md](LICENSE.md) for a copy of this license and for a list of the conditions for redistribution and use.