The client library for uq cluster.
Java Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

UQ Cluster library

UQ is a distributed persistent message queue. Libuq is the programing language bindings for uq cluster.


Name Language Author
UQ HTTP built-in
gouq Go official
juq Java sumory
phpuq PHP coming soon
pyuq Python amyangfei
... ... TODO


Gouq is the golang library for uq cluster. To use gouq, import the github package in your program:

import (

Then new a client:

// for single uq instance
c, err = uq.NewClient(protocol, ip, port)
// for multi instances in a cluster
c, err = uq.NewClientEtcd(protocol, etcdServers, cluster)

And use the queue methods like:

err = c.Add(topic, line, recycle)
err = c.Push(topic, value)
id, data, err := c.Pop(key)
err = c.Del(id)

Gouq library will automatically choose the instance online to deal with the queue methods. You needn't to worry about the connections and etcd results.

For more information, take a look at

You can also read the sample code in examples/go-uq.go. To run the sample:

go build examples/go-uq.go
./go-uq -h
Usage of ./go-uq:
  -cluster="uq": cluster name in etcd
  -etcd="": etcd service location
  -ip="": uq server ip address
  -line="x": line name
  -port=8808: uq server port
  -protocol="redis": frontend interface(redis, mc, http)
  -topic="foo": topic name


Juq is the Java library of uq cluster, Juq use redis client - aredis, and modify it to support commands from uq

//package org.aredis.cache
public enum RedisCommand {

    //###### modified by sumory for uq ######
    ADD("kk"), DEL("k"),
    //DEL("k@k", false, false, IntegerShardedResultHandler.instance),
    //###### modified by sumory for uq ######

Goto the tests for usage detail.


PyUQ is a python client library for uq cluster supporting the http/redis/memcache based protocol. Pyuq is compatible with python 2.7/3.4/3.5

To install pyuq, simply:

$ pip install uq

Goto examples and tests for usage detail.

Need Contributions

Implement all language bindings for uq cluster is a huge work to me. I really need your contributions to build a full-language uq cluster library. If you are good at some languages, php, python or any other, please make a PR to give some help.