Skip to content
This repository was archived by the owner on Aug 3, 2020. It is now read-only.

project-iris/iris-go

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Iris Go binding

This is the official Go language binding for the Iris cloud messaging framework. This version v0 of the binding is compatible with Iris v0.1-pre through v0.2.0.

If you are unfamiliar with Iris, please read the next introductory section. It contains a short summary, as well as some valuable pointers on where you can discover more.

Background

Iris is an attempt at bringing the simplicity and elegance of cloud computing to the application layer. Consumer clouds provide unlimited virtual machines at the click of a button, but leaves it to developer to wire them together. Iris ensures that you can forget about networking challenges and instead focus on solving your own domain problems.

It is a completely decentralized messaging solution for simplifying the design and implementation of cloud services. Among others, Iris features zero-configuration (i.e. start it up and it will do its magic), semantic addressing (i.e. application use textual names to address each other), clusters as units (i.e. automatic load balancing between apps of the same name) and perfect secrecy (i.e. all network traffic is encrypted).

You can find further infos on the Iris website and details of the above features in the Core concepts section of The book of Iris. For the scientifically inclined, a small collection of papers is also available featuring Iris.

There is a growing community on Twitter @iriscmf, Google groups project-iris and GitHub project-iris.

Installation

To get the package, execute:

go get gopkg.in/project-iris/iris-go.v0

To import this package, add the following line to your code:

import "gopkg.in/project-iris/iris-go.v0"

Refer to it as iris.

Quickstart

The first step to using Iris through this binding is setting up a local relay node through which to send messages, and connecting to it using the current library. Detailed infos in The book of Iris: Run, Forrest, Run.

A demo presentation is also available, touching on all the features of the library through a handful of challenges and their solutions. The recommended version is the playground (offline as of August 4, 2014), containing modifiable and executable code snippets. A read only version is also available.

Contributions

Currently my development aims are to stabilize the project and its language bindings. Hence, although I'm open and very happy for any and all contributions, the most valuable ones are tests, benchmarks and actual binding usage to reach a high enough quality.

Due to the already significant complexity of the project (Iris in general), I kindly ask anyone willing to pinch in to first file an issue with their plans to achieve a best possible integration :).

Additionally, to prevent copyright disputes and such, a signed contributor license agreement is required to be on file before any material can be accepted into the official repositories. These can be filled online via either the Individual Contributor License Agreement or the Corporate Contributor License Agreement.