Growl for Windows uses the TCP-based GNTP protocol for receiving and forwarding notifications. In the near future, Growl on
OSX will also support GNTP and then two-way communication will be a breeze. But what about folks that need two-way communication
today?
Growl for Windows can forward notifications to existing versions of Growl running on a Mac by using the Growl UDP protocol.
That means PC-to-Mac communication will work out-of-the-box. However, Growl on OSX does not use the UDP protocol to forward
notifications. Growl/OSX can only forward notifications using Distributed Objects - a Cocoa-only technology that only works
on Apple machines. As such, although you can forward notification *to* a Mac from Windows, it has thusfar been impossible to
forward *from* a Mac to Windows. Until now.
Today I am announcing 'Growl Impersonator' - a simple utility that solves this problem. Growl Impersonator runs on the Windows
machine that you would like to forward notifications to. It acts as a middle-man, posing as a Growl/OSX instance so that Growl/OSX
can discover and communicate with it, and then forwarding any notifications it receives on to GfW.

Growl Impersonator running on Windows

Forwarding from Growl on OSX

Growl/OSX notification on Windows
How does it work?
- Impersonator advertises itself on Growl's DO port (23052) using Bonjour
- Growl/OSX detects the Impersonator and thinks it is another Mac on the network
- Growl/OSX displays the Impersonator as a forwarding destination in its PrefPane
- When Growl/OSX receives a notification, it forwards it via DO to any destinations, including the Impersonator
- DO objects get serialized as binary data and sent over TCP
- Impersonator acts as a TCP listener and receives the serialized DO objects
- Impersonator understands just enough of the serialized data to be able to parse out the notification information
- Impersonator constructs a new GNTP notification using the data it parse and sends that to the local GfW instace
It is very important to note that this is totally experimental and probably has tons of bugs. It does not
support images or click callbacks (similar to the UDP protocol). It is not a part of GfW and requires you to run yet another app. Apple could change the format of the DO serialization at any time and it could break (though that is unlikely).
That said, it does supports both registrations and notifications. I have successfully tested it with GrowlTunes and custom
AppleScript-based notifications. I am going to continue to test more use cases to ensure the widest range of compatibility. I think
that there is even a chance that I may be able to support images at some point as well.
If anybody out there wants to try it out, you can download it from the link below. I make no warranties to how well (or if) it
will work for you. But if you do try it out and want to report your successes or failures, you can post up your experience in the
GfW discussion group.
Download Growl Impersonator
Leave feedback in the GfW Discussion Group
Note: When configuring the forwarding in Growl on the Mac, you must leave the Password property empty, even if you use a
password in GfW. If you do use a password in GfW, you must set it in Growl Impersonator.