• Stars
    star
    102
  • Rank 333,591 (Top 7 %)
  • Language
    Go
  • License
    BSD 2-Clause "Sim...
  • Created over 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Raspberry Pi Go Language Interface

Read me first

GOPI Go Language Application Framework

CircleCI

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 gRPC

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

In order to use the library, you'll need to have a working version of Go on your Raspberry Pi, which you can download. Then retrieve the library on your device, using:

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,

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.

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 for a copy of this license and for a list of the conditions for redistribution and use.

More Repositories

1

postgresql-kit

Frameworks for integrating a PostgreSQL database with your Mac and iOS projects
Objective-C
82
star
2

go-pico

Raspberry Pi RP2040 Pico SDK for golang
Go
54
star
3

ExpressionEvaluator

Using Lex and Yacc with Objective-C
Objective-C
22
star
4

ytapi

YouTube API Command-Line Interface
Go
16
star
5

gopi-hw

gopi hardware interfaces
Go
14
star
6

sensors

Hardware sensor interfaces through GPIO, I2C & SPI including BME280, TSL2561, ENER314, RFM69
Go
11
star
7

YouTubePlayerKit

Example implementation of a YouTube Player for iOS
Objective-C
11
star
8

remotes

Transcoding, Sending and Receiving Infrared Remote codes
Go
6
star
9

flutter

Flutter application examples
Dart
6
star
10

c-tensor

Tensor implementation in C
C
5
star
11

MachineLearning

Examples from "Machine Learning with Go" by Daniel Whitenack
Go
4
star
12

gd-kit

Cocoa framework for interfacing with the GD graphics library
C
4
star
13

data

Data extraction, transformation, processing and visualisation
Go
2
star
14

go-rotel

Bridge Rotel Amplifier to Home Assistant
Go
2
star
15

FoundationAdditions

Small additions to the Foundation Framework
Objective-C
2
star
16

flite

Go Language Bindings for "flite" Text-to-speech
Shell
2
star
17

go-dom

Document Object Model (DOM) implementation for backend and frontend.
Go
2
star
18

robots

Experimental code for robotics
Go
1
star
19

gopi-app

A template gopi application
Go
1
star
20

go-marshaler

General Purpose Marshalling and Unmarshalling
Go
1
star
21

VideoIntelligence

Test Code for Google's Video Intelligence API
Go
1
star
22

graph

Dependency and Lifecycle Management for Go
Go
1
star
23

SplitViewResizeTest

Making an NSSplitView work nicely...
1
star
24

go-tensorflow

Tensorflow tests
Go
1
star
25

EnterpriseTechnologyDay

Code and samples for Enterprise Technology Day
Go
1
star
26

go-errors

Common errors across repositories
Go
1
star
27

gopi-input

gopi input services
Go
1
star
28

go-tablewriter

Writer for table data
Go
1
star