It’s time to reveal the latest project I’ve been working on to the world and, just to prove that XMPP isn’t all of my life, it’s…an XMPP library.
Stroke is a native Java port of the Swiften XMPP library that Remko and I work on. It came about because Isode (my day job) needed an XMPP library for use in a Java project and none of the alternatives at the time seemed to be suitable, so I’ve been spending some of my work days over the last while porting Swiften. Isode have decided to open-source Stroke and I’ve uploaded the development repository to http://swift.im/git/stroke alongside the Swift and Swiften code.
Stroke’s now in a basic usable state but I’m still working on adding some of the basic necessary features. Particularly, at this stage, it’s lacking in:
zlib compression support.
Many (most?) of the protocol payload handling that its big brother Swiften has.
I intend to address these as time allows.
On the other hand, it’s already inherited some of the nice features that Swiften has, particularly:
Support for the SCRAM-SHA1 authentication mechanism (a mandatory feature for XMPP, these days).
XEP-0198 stanza acknowledgement support (for reliable messaging).
If you’d like to grab a copy to have a look at, experiment with or just follow development of, head over to http://swift.im/git/stroke.
If you’d like to chat about Stroke (or Swiften, or Swift), we’ve got a chat room and a mailing list, linked from our Discussion Page and I’d love to hear from you.
The primary license is the GPL v3, although alternative licensing may be arranged for Stroke (and for Swiften). Contact Us.
A bit under a month since the last beta was released, Swift has reached Release Candidate stage for 1.0. This version is being released to check that each i is dotted and each t crossed, so please report any bugs/issues that you find, and in the absence of problems we’ll aim to release the final builds soon.
Just under 24 hours ago, the XMPP Standards Foundation were told that they’ve been accepted for Google’s Summer of Code 2011. A healthy chunk of Swift projects are within the ideas the XSF are proposing this summer, and we’re looking forward to the opportunity to involve more people in what is, for Remko and me, a very enjoyable pastime. So if you’re a student, please visit our chat room or our mailing list and see if we can discuss ideas that excite you. If you know students who might be interested, please spread the word, and help make Swift’s first GSoC experience a great one.
We’ve just released the final pre-1.0 beta of Swift (next step Release Candidate). We have no known bugs in Swift at this point, so if you find any please report them so we can get them fixed for the RC.
Show popup notifications for incoming messages (and optionally, presence changes) through Growl (Mac OS X), Snarl (Windows), or FreeDesktop (Linux).
Acknowledge server receipt of sent messages (Demo).
Subsequent presence changes in the chat log are now combined to avoid clutter.
It’s now possible to rename contacts and groups.
It’s now possible to assign your contacts to groups.
It’s now possible to cancel a login in progress.
Whether roster groups are expanded or collapsed is now persisted between sessions.
Fixed a problem where multiple notices were selected when new ones were added.
The roster header will no longer show you with (No message) if you specify a message when you go offline.
Contacts will no longer show as ‘typing’ if you go offline before they’ve sent the message.
Fixed problems with the chat logs not properly scrolling to bottom.
Joining rooms when you are not plain ‘available’ now correctly sends your status to the room.
Being in a MUC with someone who has their role changed will no longer cause them to appear several times in the occupant list.
The Mac Dock icon has stopped jumping when it shouldn’t.
System and Presence messages in chat windows are now linkified (as well as chat messages, which were previously).
We now only show the system tray message icon for message events.
When reconnecting, we now try to reuse server-generated resources to avoid having multiple resources connected for the same client.
We now detect when we should use chat state notifications.
Fixed a problem where MUC discovery would loop when searching a server that has the same JID with different nodes.
The chat window now shows date changes.
Support creating new MUCs.
Display avatars for offline contacts.
Added “Clear” context menu for chat log.
Fixed a problem where the roster wasn’t refreshed properly on reconnect.
Display the user’s nickname at the top of the roster.
Fixed problems with certain LibXML versions failing on the vcard-temp namespace.
Various improvements for the Windows installer.
Fixed assorted memory leaks.
We’re now approaching feature-completeness for 1.0, and Swift is pretty much ready for day-to-day use, so testing and feedback would be very welcome - grab it now from http://swift.im/releases/swift-1.0beta7/