Sign In / Register

History of Bauk HTTP Server

This is a list of events in Bauk HTTP server, tools, libraries and software development.

  • 2000. — Bauk HTTP Server development started in year 2000. In its first version Bauk provided main HTTP/1.1 features, support for Virtual Hosts and KeepAlive connections, and simple configuration options.
  • 2001. — With releases of new versions, Bauk was bit by bit including more features. New features required a convinient way to organize and administer large number of configurable options and parameters, and for that purpose Bauk config script language was developed. It is a C / JavaScript-like config script language providing numbers, strings, variables, operators, function calls, block and line comments, file inclusion, and many other options, all allowing admin a simple and easy way to manage hundreds of config parameters Bauk provides. You can see example "bauk.cfg" and its syntax in Bauk manual. This is a snip from bauk.cfg showing small portion of Bauk config options...
    //Create a VirtualHost, "www.domain.com"
    vhost_create("single", "www.domain.com", "/home/user/www_domain_com/");
    vhost_url_path("/",       "./html/", "GHP", "lbr"); //URL, path, methods, flags
    vhost_url_path("/icons/", "/usr/local/bauk/SHARE/icons/", "GH", "lbr");
    vhost_alias("*.domain.com", "123.45.6.78");    //VirtualHost's aliases
    vhost_log("./access.log");                     //access log
    vhost_save();                                  //store this VirtualHost
    //More Virtual Hosts defined...
    
    //Configure access log format
    //NCSA Common Log Format
    //123.45.6.78 - - [Mon, 20 Apr 2009 12:40:22 GMT] "GET /page.html HTTP/1.1" 200 1234
    global_format_log("$client_ip - $client_user [$server_date_local] "
         +"\"$client_method $client_url $client_protocol\""
         +"$server_status_http $server_object_length"
         );
    
    //MIME types for all Virtual Hosts
    //Multiple extensions may be separated by ','
    mime("html,htm",      "text/html");
    mime("txt,log,c,h",   "text/plain");
    mime("css",           "text/css");
    mime("bmp",           "image/bmp");
    mime("gif",           "image/gif");
    mime("jpg",           "image/jpeg");
    mime("png",           "image/png");
    //More MIME definitions...
    
    //Set directories and program identity
    bauk_workdir("/usr/local/bauk/bin/");         //Bauk working directory
    bauk_pidfile("/usr/local/bauk/bin/bauk.pid"); //pidfile path
    bauk_tmp("/usr/local/bauk/tmpfiles/");        //temp files dir
    bauk_usergroup("bauk", "bauk", "e");          //change user/group; "r" real, "e" effective
    bauk_bind("*", 80);                           //bind to interface
    bauk_gzip(5, "html,htm,css,txt,js,xml,wml");  //enable gzip compression, level 0-10
    //For complete list of config options see default "bauk.cfg" script
  • 2002. — Bauk development continues, and number of releases are made.
  • 2003. — Bauk provides support for SSL/TLS secure/encrypted HTTP connections by OpenSSL library.
  • 2003. — Development of Bauk GZIP library, providing file/content on-the-fly compression.
  • 2003. — Development of BaukBench HTTP/1.1 benchmark/stress test tool for measuring performance of Web servers. BaukBench provides unique features not available with other benchmark tools. Ie. it is capable of creating extreme load without consuming resources on client and capable of benchmarking servers with dynamic content using KeepAlive connections on/off.
  • 2004. — Development of Bauk's persistent interpreter Grom (Thunder) connector. Bauk provides complete ASP-like scripting environment for Server-Side JavaScript, PHP, Perl, Python and Tcl. Ie. easy just like working with HTML files, scripts placed in Web directory automatically executed by Web server/interpreter
  • 2005. — Development of GromJS Server-Side JavaScript interpreter based on SpiderMonkey JS core script engine. This page you are viewing and complete Bauk Web site is powered by Bauk/GromJS and Server-Side JavaScript pages. See more info on GromJS home page.
  • 2007. — New Bauk versions/releases.
  • 2008. — Development of BDB Database. Recognizing the need for fast, universal and portable database in Web scripting sphere Bauk Team as answer to this requirement engineered BDB Database. BDB is full featured database system/engine and standalone program ie. like MySQL, and it includes client/server architecture, simple administration and user management, command language similar to SQL and ability to efficiently store large amounts of data. For example, here are some commands in BDB language:
    CREATETABLE tcars UINT32 year, UINT32 color, UINT32 weight=1600, FLOAT64 price, STRING08 sname, STRING32 sdescr;
    INSERT tcars year=2004, color=0xFF0000, weight=1550, price=6789.50, sname='Ferrari', sdescr='Description';
    SELECT tcars * WHERE year>=2004 || (rowid!=3455 && sname==*'fer') IGNORECASE ORDERBY sname,DESC year,color IGNORECASE;
    SELECT tcars rowid,sname,price WHERE price>=7000 && price<9000 && color==0; #Select cars in price range and black
    SELECT tcars * ORDERBY sname,year,price OFFSET 200 LIMIT 100;
    UPDATE tcars color=0xFF0000  WHERE year<2001 && sname*==*'rar' IGNORECASE;
    DELETE tcars * WHERE rowid==3455;
    DROPTABLE tcars;
    BDB has client available with GromJS Server-Side JavaScript interpreter, and you can see it in use on this page and on complete Bauk Web site powered by Bauk/GromJS/BDB. Have a look at Bauk Forum app, more information about BDB database/example scripts can be found on GromJS home page.
  • 2010. — New Bauk versions/releases.