hlparse

My apologies for this lousy page. Better this than nothing at all, right?

What is it?

hlparse is a parser for Half-Life dedicated servers. It takes logs produced by the server, parses them, and passes the information to user-programmable "filters." Filters can currently only be written in Guile Scheme, but adding Perl support is a priority. Because of the design of the system, it's relatively straightforward to add support for lots of different languages, so expect to see other filter languages as development moves along.

How can I get it?

Through the SourceForge download page.

What differentiates hlparse from similar programs?

The job of hlparse isn't to produce HTML stats or anything else: its job is simply to parse data it gets from some source. In fact, hlparse isn't even bound to any particular means of getting logs: it can read from the standard input (for use with shell pipes), from a file (for use on stored logs), from a FIFO on disk (for when shell pipes can't be used), and so on. Because of the "pluggable" output system (which supports running multiple filters on the exact same data, all at the same time), hlparse also isn't bound to any particular kind of output. You can use filters which produce SQL statements for databases, you can use filters which connect to an IRC server and echo certain commands, and so on. The thing which differentiates hlparse is versatility: hlparse can be used to easily write all sorts of programs that work with Half-Life logs.

So I need to write a program to get hlparse data and I need to write a program to do something with that data? Sounds like a lot of work.

hlparse can read from files, so you can use canned logs. A program called monitor is also included. The job of monitor is to connect to a server over UDP using rcon and grab log messages, then direct them elsewhere. You can use monitor and hlparse together to get data from a server in real-time. There's also the output filter database.scm, which produces SQL statements to maintain a stats database. Unfortunately, if you want a stats WWW page, you will have to write the WWW pages yourself. While a stats system isn't in the works just yet, it's the most likely use of hlparse and so should be cropping up eventually.

How can I get involved?

Via the hlparse page on SourceForge. From there you can download code or get instructions on getting stuff via CVS. If you implement a feature that simply must get put into the official version, email me your patch and I will take a look at it.

SourceForge Logo