Piccolo has been ported to Go. The original Python script is still in place, but will no longer be updated. This entry is the first one published with the new picc.go.

Here's a speed comparison between the Python and the Go code for a full republish, i.e. every HTML file needs to be rewritten. First for the old Python code:


$ ./bin/piccolo
real  0m57.491s
user  0m46.415s
sys 0m1.312s

And now the Go code:


$ ./bin/picc
real  0m4.460s
user  0m1.588s
sys 0m1.096s

And incremental publishing is under a second:


$ ./bin/picc
real  0m0.476s
user  0m0.404s
sys 0m0.068s

Note that incremental isn't a very good description since the program is still parsing close to 1,000 XML files in that last run. I obviously have some performance improvements I can make.