PSYC? Huh?

Protocol for SYnchronous Conferencing.

PSYC is, as benchmarks show, the fastest yet extensible text-based protocol we are aware of, providing a messaging infrastructure for human conversation and social exchange of possibly binary data. It has learned from protocols such as IRC and XMPP and chose an approach that should scale globally by generalizing the multicast concept beyond programmable chatrooms to presence awareness, event notification, news- and friendcasting. In commercial settings PSYC is also being used for telephony and audio/video. PSYC provides trust metrics for a distributed social graph and publish/subscribe data. In combination with pseudonymous routing technology it turns into secure share, a platform for maximum privacy social networking and applications.

What happened to PSYC 1.0?

PSYC has been having an existence in a niche for many years. It has as yet not achieved the popularity it needs to make a difference. Reasons are, the protocol specification is still sketchy and the prime implementation, psyced, has grown so big, it provides for a lot of amazing features, but doesn't deliver the promise of PSYC. Many people find it hard to get familiar with and think it is ripe for a major rewrite, which also brings to the table the question of which programming language to employ or various other ways to deal with the current situation. Decisions need to be taken, and the more we are, the better and competent decisions we take, hopefully.

Why this is important

Well, PSYC does have its own strengths worth pursuing, even in a world where XMPP is growing and IRC never dies. Some reasons, among others, that people use PSYC include:

  1. You can use IRC client technology to communicate with both IRC and XMPP worlds, apparently better than with Bitlbee.
  2. You can get more creative in writing your own messaging and chat client software and still use it to talk to people you know on XMPP. You may in particular dislike having to deal with XML.
  3. If you have a requirement for an IRC server, because IRC has the better approach to group communications and idling than XMPP has, then psyced is a fine ircd that will trade in a few IRC traditions for a landslide of powerful new functions, like a builtin webserver.
  4. Several people have written custom chatrooms to achieve very special needs.
  5. You can do little hacks and tool integrations easier than with either IRC or XMPP. In particular notification automations for e-mail, wiki, version control systems and more.
  6. Some like to receive a real-time Twitter™ feed in their IRC or PSYC clients.
  7. Some like chat event technology that actually scales.

So there is a community that finds psyced's features worthy enough to use it in everyday life today, and there are people who would really like to have what PSYC is intended to promise. That is why a new initiative has formed to kick PSYC out of its Cinderella's sleep and into a state of 1.0.

The work that needs to be done is itself being discussed. All the options are on the table and being evaluated on the Strategy page.

Who's in?

Would you join in, getting PSYC 1.0 deployed, if there are, say, nine other people intending to the same with you? If that is the case, please add yourself to this list. Please summarize shortly if there any kinds of limitations to the help you can contribute or requirements for your motivation to take off.

  1. lynX would be doing PSYC on any platform, as long as it is open-source and unix-compatible.
  2. Kol_Panic is available for testing and documenting PSYC as long as it will compile on Linux. He is especially interested in providing application logic for programmable contexts.
  3. Marenz is in for a c/c++/pike or D based platform, maybe some others, but afraid of LPC. java and js is per definiton a negative.
  4. Alice in.
  5. tg too.
  6. mjacob is in. I don't think ten people are necessary.
  7. CoopDot will probably be sucked into it one way or another. Prefer C or C/Python-combo. Most useful in testing and documenting.
  8. Ketmar is in. I mostly interested in writing gicky/experimental clients in various languages like Forth and LISP.
  9. hellekin is in. I don't know any of the above languages, but I'm willing to learn LPC or pike for the occasion. Also interested the spec2test stuff and xmpp integration. Lua or Erlang also sound good to me. GNU/Linux-based.
  10. coyo is in. He can be put to work performing bug testing and triage, documentation, and wiki editing, and is currently learning Python. He aspires to host several high-volume instances of PSYC.
  11. iKJames is in. Willing to bug test, integrate with IRC-based stuff, program in Python, make a client, learn new stuff, etc.

What's next?

Check out the Development Culture and Development Tools and read the Specs.

Find out a little about LPC. It's just another curly-bracket language. The biggest difference between LPC and languages like C, C++, Java and JavaScript is that the native libraries are small in number and invariably psyc-related. If there's something that's needed, we'll get it done.

Focus on server development and try to join an existing projects or one of the teams rather than starting a new codebase, temperament permitting.

If you really have your heart set on writing client software and/or starting a new server implementation then learn your way around the specification and take your time exploring the source code of existing projects. Maybe it is just chat and a duck is just a duck, but you owe it to yourself to check out the furious activity going on underneath the surface. There is a reason that XMPP and IRC are such a mess. The problems presented by IMs and MUCs are non-trivial.

Meet us for a chat

PSYC people meet and idle in places (aka chatrooms or channels). The starting point typically is our welcome room. You can join it by successfully installing a PSYC client or server such as psyced, then click or /enter psyc:// - or you can use the webchat at - an IRC client on irc:// (that is channel #welcome on server - a Jabber client with as its server or an XMPP identity entering a Multi User Chat on called *welcome (yes, with an asterisk). In all cases, you are connected to a PSYC place, it just looks different in many ways.