Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dimiro1/ipe
An open source Pusher server implementation compatible with Pusher client libraries written in GO
https://github.com/dimiro1/ipe
Last synced: about 1 month ago
JSON representation
An open source Pusher server implementation compatible with Pusher client libraries written in GO
- Host: GitHub
- URL: https://github.com/dimiro1/ipe
- Owner: dimiro1
- License: mit
- Archived: true
- Created: 2015-01-13T11:49:19.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2021-03-28T13:07:21.000Z (over 3 years ago)
- Last Synced: 2024-08-03T15:06:18.030Z (5 months ago)
- Language: Go
- Homepage: http://dimiro1.github.io/ipe
- Size: 364 KB
- Stars: 366
- Watchers: 18
- Forks: 83
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - ipe - An open source Pusher server implementation compatible with Pusher client libraries written in GO - ★ 240 (Software Packages)
- awesome-go-extra - ARCHIVED - 01-13T11:49:19Z|2021-03-28T13:07:21Z| (Go Tools / Other Software)
README
[![Go Report Card](https://goreportcard.com/badge/github.com/dimiro1/ipe)](https://goreportcard.com/report/github.com/dimiro1/ipe)
Try browsing [the code on Sourcegraph](https://sourcegraph.com/github.com/dimiro1/ipe)!
# IPÊ
An open source Pusher server implementation compatible with Pusher client libraries written in Go.
# Why I wrote this software?
1. I wanted to learn Go and I needed a non trivial application;
2. I use Pusher in some projects;
3. I really like Pusher;
4. I was using Pusher on some projects behind a firewall;# Features
* Public Channels;
* Private Channels;
* Presence Channels;
* Web Hooks;
* Client events;
* Complete REST API;
* Easy installation;
* A single binary without dependencies;
* Easy configuration;
* Protocol version 7;
* Multiple apps in the same instance;
* Drop in replacement for pusher server;# Download pre built binaries
You can download pre built binaries from the [releases tab](https://github.com/dimiro1/ipe/releases).
# Building
```console
$ go get github.com/dimiro1/ipe
```or simply
```console
$ go install github.com/dimiro1/ipe
```Building from a local checkout
```console
$ git clone https://github.com/dimiro1/ipe.git
$ cd ipe/cmd
$ go build -o ipe
```# How to configure?
## The server
```yaml
---
host: ":8080"
profiling: false
ssl:
enabled: false
host: ":4343"
key_file: "key.pem"
cert_file: "cert.pem"
apps:
- name: "Sample Application"
enabled: true
only_ssl: false
key: "278d525bdf162c739803"
secret: "${APP_SECRET}" # Expand env vars
app_id: "1"
user_events: true
webhooks:
enabled: true
url: "http://127.0.0.1:5000/hook"```
## Libraries
### Client javascript library
```javascript
let pusher = new Pusher(APP_KEY, {
wsHost: 'localhost',
wsPort: 8080,
wssPort: 4433, // Required if encrypted is true
encrypted: false, // Optional. the application must use only SSL connections
enabledTransports: ["ws", "flash"],
disabledTransports: ["flash"]
});
```### Client server libraries
Ruby
```ruby
Pusher.host = 'localhost'
Pusher.port = 8080
```PHP
```php
$pusher = new Pusher(APP_KEY, APP_SECRET, APP_ID, DEBUG, "http://localhost", "8080");
```Go
```go
package mainimport "github.com/pusher/pusher-http-go"
func main() {
client := pusher.Client{
AppId: "APP_ID",
Key: "APP_KEY",
Secret: "APP_SECRET",
Host: ":8080",
}
// use the client
}
```NodeJS
```javascript
let pusher = new Pusher({
appId: APP_ID,
key: APP_KEY,
secret: APP_SECRET
domain: 'localhost',
port: 80
});```
# Logging
This software uses the [glog](https://github.com/golang/glog) library
for more information about logging type the following in console.
```console
$ ipe -h
```# When use this software?
* When you are offline;
* When you want to control your infrastructure;
* When you do not want to have external dependencies;
* When you want extend the protocol;# Contributing.
Feel free to fork this repo.
# Pusher
Pusher is an excellent service, their service is very reliable. I recommend for everyone.
# Where this name came from?
Here in Brazil we have this beautiful tree called [Ipê](http://en.wikipedia.org/wiki/Tabebuia_aurea), it comes in differente colors: yellow, pink, white, purple.
[I want to see pictures](https://www.flickr.com/search/?q=ipe)
# Author
Claudemiro Alves Feitosa Neto
# LICENSE
Copyright 2014, 2018 Claudemiro Alves Feitosa Neto. All rights reserved.
Use of this source code is governed by a MIT-style
license that can be found in the LICENSE file.