Circle

What is it?

Circle is an IRC client which merges the best attributes of a local client and the common screen+irssi recipe.

Keep IRC connects and state on a backend server, allowing disconnections from local UI.

Interact with a real local GUI for the frontend, instead of incurring SSH roundtrips for every keypress.

It addresses a number of shortcomings in existing approaches to IRC by separating the component which maintains connections to IRC servers and that which displays and allows the user to interact with these connections. By maintaining this separation, it enables the creation of clients for a variety of platforms which look and feel like a native, local application. In addition, users will be able to connect these frontend components to the backend component in a variety of ways, including local sockets and over a network connection.

This approach will also allow us to cache information and to perform handling of events which can be dealt with locally, reducing the round-trip latency concerns that plague GNU screen users attempting to use applications over slow connections.

Additionally, Circle is being constructed with extensibility in mind, such that anything which is vaguely like an IRC session may be represented in it, differentiating it from existing solutions like Quassel.

What is it really?

OK so the above is all a big lie. Circle is in fact an application hosting framework, focussing on effectively breaking the link between the backend application logic and the frontend user interface. The idea being, to disconnect the user interface from the application logic, in such a way that multiple frontends can connect to the same application, and vice versa. This allows for easy dis/reconnecting of frontends, as well as a choice of local frontend independenly of backend application.

Currently, the only backend application is an IRC client, and the only frontend user interfaces are GTK2 and a terminal one using Tickit. A set of Java libraries to allow e.g. an Android mobile client frontend are currently under development.