GopherJS Client and gRPC Server - Part 3

Implement the client GopherJS can be used in a couple of different ways, and there’s a couple of different bindings to many popular JavaScript frameworks. The GopherJS wiki has some great resources. I tried a couple of different ones and ended up using the VueJS bindings be...

GopherJS Client and gRPC Server - Part 2

Implement the server I like to start by creating a struct and write a simple definition that’ll immediately fail to compile. package server import ( "github.com/johanbrandhorst/gopherjs-grpc-websocket/protos/server" ) type Server struct{} var _ server.MyServerServer...

GopherJS Client and gRPC Server - Part 1

Create the protobuf interface We’ll start by creating a folder for the package we want to create. Lets call it server. Next we type up a .proto file to define the interface between the server and the client. We’ll have to include some extra proto annotations in order...

GopherJS Client and gRPC Server - Introduction

I’ve been using gRPC and Go a lot in the last year. At Cognitive Logic every one of our backend services is implemented with Go and gRPC, and it enables us to abstract away most of the complexities of networked micro services and keep interfaces typed and well defined using...

Every Day We Must Sweep

How to build Go plugin with data inside

Go 1.8 gives us a new tool for creating shared libraries, called plugins! This new plugin buildmode is currently only supported on Linux. But what if we build plugin with data in binary format inside? So we can ship only one .so file.

Pros and Cons: Golang in a Monorepo

Monorepo - is a monolithic code repository which can contain different services (or whatever you want to call them), CLI, libraries, etc.

Text-Based User Interfaces

Want to equip your command-line application with a nice visual user interface? TUI libraries are here to help.

How to use go-bindata with html/template

What is go-bindata and why do we need it? go-bindata converts any text or binary file into Go source code, which is useful for embedding data into Go programs. So you can build your whole project into 1 binary file for easier delivery.

Automatic Stackdriver Tracing for gRPC

In monolithic systems, it is relatively easy to collect diagnostic data from the building blocks of a program. All modules live within one process and share common resources to report logs and errors. Once you are distributing your system into microservices, it becomes harder to...