This API provides a way for Java applications to connect and use the Yahoo Instant Messenger protocol, version 10 (YMSG-10) in a reasonably coder friendly and abstract way. Although methods the API exposes are clearly matched to Yahoo IM features, the API attempts to hide as much of the nitty-gritty as possible, taking responsibility upon itself as far as it possibly can.
Written using J2SE 1.3/1.4 - but will probably work under JDK/JRE 1.1
This is not an application, it is an API which may be employed by an application to create an instant messenger using the Yahoo chat/pager system. As such it is targeted at experienced programmers.
The project has matured quite a bit since it was first released, with a companion support package now providing advanced features like Swing models, spam detection, a chat emote manager, and customisable styled text decoding. I've kept this project described as being in an 'alpha' stage - even though the code has been downloaded by countless Java programmers and has held up quite well - as there is still a lot of work to be done catching up with all the features Yahoo have added over the years.
This project is released under the GPL.
Hopefully more to be added :Eclipse Instant Messenger Plugin, for eclipse.org. ImTask, keep fellow developers in step with instant messages from Apache Ant. PlanetaMessenger.org, are using this API to build their Java messenger client. Y! Messenger for Hiptop, is a Java based messenger available for the Danger Hiptop, using a port of jYMSG to Java's Micro Edition platform. Gym!, is an Java based messenger client hosted by a SourceForge-like site in India, so internationalization support should be strong. The project also boasts a console based messenger. Jmsngr, is another IM client in the very early stages of development. ServerWatcher 2.0, is a novel little application which monitors servers and notifies administrators of downtime via their prefered method of communications. Orbeon, is apparently using jYMSG to allow web services to interact with instant messaging. You can find out more here.
This project could not have existed without pioneering work done by other coders elsewhere. Although jYMSG is not a port of any other project, I did rely on other Open Source implementations to help fine-tune this Java version, and answer the recuring question "what the hell does this tag do?"
In particular I am indebted to the libyahoo2 project, who's documentation and source code was most useful in getting me started, as well as decyphering the more obscure parts of the protocol. I'd like to think by adding to the pool of documentation myself (as well as publishing details on the workings of YMSG's HTTP proxy scheme) I am in some small way repaying that debt.
A number of other Java coders, too many to list, also contributed comments and suggestions - many of which made it into the package. Special mentions go to J. Morris, who submitted some example code for the support library; Phinaes Gage, who submitted a working SHA-1 implementation after the Java API version could not be used; and Kulvir Singh Bhogal, who wrote a beginner's tutorial for jYMSG.
Naturally thanks must also go to SourceForge, who host this project for free, along with countless other GPL and Open Source efforts.
jYMSG was created entirely without reverse engineering of any Yahoo! software code.
Copyright © S.E.Morris (FISH) 2003-05 (Java Duke © Sun Microsystems; large smiley © Yahoo! Inc.)