Here's a little Christmas present for the programmers out there:
Last night the APRS parser library used by aprs.fi was uploaded to CPAN. It's written in pure Perl, and it's reasonably complete, stable and fast. It's licensed under the same open terms as Perl itself (you pick: Artistic or GPL). It is written by Tapio Sokura, OH2KKU, with some additions by myself (weather packet parsing, machine-readable return messages, unit tests). Without this module, and the time Tapio took to write it in the first place, I wouldn't have gotten this far with aprs.fi. Parsing APRS packets is not easy.
It does miss some features (like telemetry parsing, and a few other smaller things), but I believe it to be the best parser currently published as open source. It validates input packets in a rather strict way and actually tells you what is wrong with each rejected packet. It does not crash when it sees something unexpected or corrupted. It returns numeric data in SI units. It's good enough to parse the APRS-IS feed in real time on any modern computer. It might even run on Windows with Perl (cygwin?) installed.
To install it on an Unix-like system (like Linux) with Perl using CPAN (as root):
root@proge:~#> perl -MCPAN -e shell
... if you're running the CPAN client for the first time, answer the questions, and once you're in the CPAN shell: ...
cpan> install Ham::APRS::FAP
You can also download the Ham::APRS::FAP module and browse it's contents on the CPAN web site. Installation instructions can be found in the README file.
Oh yeah. FAP stands for Finnish APRS Parser (or Fabulous APRS Parser). Ham::APRS::Parser was taken.