Big changes are coming soon

Tue 31 July 2012 by Monnand

Given the plan in uniqush after go1, some changes, which may be considered as big changes, will be made in the coming August.

  • A new static website for Yes, no more trac.
  • A new uniqush organization on github is created. All uniqush related code will be moved under uniqush organization. It is more than welcome to join it.
  • uniqush will provide binary packages for 64-bit GNU/Linux systems, including .deb package, .rpm package and .tar.gz package (which can be used on all 64-bit GNU/Linux systems). It is highly recommended to install uniqush system from those packages. No more go get (but you can still use go get anyway if you like).
  • Last but not least, the release of uniqush-conn and other stuff will be postponed (sorry about that). Hopefully, I could make it before Feb. 2013. Watch the repositories on uniqush organization for more updates.

Here are some details about these updates.

Home page will be static

Check out our uniqush-www repository, the whole website will be there. It is a static website created by webgen.


  • I found some spam using uniqush's ticket even if I have already added CAPTCHA plugin, which is very anoying.
  • I don't quite like to backup databases for wiki pages on uniqush, although it is done automatically by two cron jobs running on and a small Arm server in my home. Recovery the whole website from scratch is still hard even if I have all content on my hand (import data to database, setup trac and its plugins again, etc.)
  • If I use webgen based static pages, I can easily change the look of the website by changing the template.

The website will be replaced once I migrated all pages on So please expecting the outage of for one or two days. In the meantime, you can still access our source code from uniqush organization.

Uniqush organization on github

The uniqush organization is meant to cover most development-related operations on uniqush system --- including uniqush-conn, uniqush-push, uniqush-client and their issue tracks. This job could be done better by using an individual organization account, rather than a personal account. Moreover, considering there are already some people contacted me saying they are interested to join the uniqush system development team, an organization is the best fit for such team work in the future.

However, because we will migrate source code to uniqush organization, programs, if any, using code from uniqush-push should be aware of the changed url.

Binary packages

One of the beautiful parts of Go programming language is: it deliberately does not support shared library or dynamic library. That means the program written in Go programming language is self-contained, i.e. one executable, no dependencies (in the sense of library, not external program). Once the program is produced from compiler, you can copy it around and it can be always run regardless what ever the libraries you have installed on the machine.

This makes me very easy to produce binary packages, which should be a necessary part for an free/open-source project.

Right now, all packages are produced and will be on-line after replacing the website with static pages.

uniqush-conn, and other stuff

I have to appologize for the delay. I over-estimated my ability and under-estimated the workload I am facing right now. However, the good thing is: I have a more concrete design on the whole system.

uniqush-conn, as always, will be written in Go programming language. The core part of uniqush-client will be written in C for portability and performance consideration. There will be several derived work on uniqush-client to support different platforms including Android, iOS. This means the core part of mobile library is written in native C language, which, as you can expect, will be and should be fast.


  • uniqush-push will support wildcast when you push some notification to subscribers. For example, you can name your subscriber as group1.sub1, group1.sub2, group1.sub3, etc. Then you can say "push message to group1.*" and the message will be push to all subscribers whose name starting from group1..
  • uniqush-push will support true multicast. Because GCM introduced multicast, we need to support it in native way.

All features above will be included in the next release, verion 1.3.1