[FFmpeg-devel] New FATE Server Based on Node.js

Timothy Gu timothygu99 at gmail.com
Sun Nov 2 06:33:17 CET 2014


Hi all,

## Background

For the past few weeks I have taken the liberty of learning Node.js. The
inefficient godly Perl CGI code of fateserver obviously served as a
non-example during my learning process. In the end, I decided to rewrite
fateserver in asynchronous Javascript with Express.js and EJS. The result
is much better in all perspectives: easier-to-read templates, clean routing
code, and most importantly, it is much faster than I have previously
thought.

## Changes from the Perl CGI fateserver

I have restyled the history and result pages to be a little bit more
mobile-friendly and modern.

The `summary` files are now stored in JSON format, although support for the
older colon-separated format is also written.

The URL scheme is now changed to:

    /history/:slot
    /report/:slot/:time
    /log/:slot/:time/:log

although the old `.cgi?slot=` scheme is still supported.

## To-Dos

Nevertheless, this is still an WIP. I have written history, results, and
log pages, but not yet the index page. There might be bugs I have not
discovered. The source is covered with redundant file existence checks that
can be eliminated after the server is finished.

I also want to add branch support.

## Demos and Benchmarks

A demo is up on http://104.131.148.213:8080/history/tgdo-test-nothing. Feel
free to click on the report buttons.

A preliminary benchmark (versusing the old fateserver) is available on
https://gist.github.com/TimothyGu/356e0cf6ce5e62ac6910
The results page has gone through some serious scripting so the performance
gain is not as significant as the history page, but still sweet.

A quick gallery is on https://gist.github.com/TimothyGu/fcc5b5f9fb34303a6420

## The Sources

https://github.com/TimothyGu/fateserver-node

## Looking Forward

All comments, patches, suggestions are welcome. Bug reports are welcome
too, but preferably on the GitHub bug tracker.

Timothy


More information about the ffmpeg-devel mailing list