FastRWeb - Fast Interactive Web Framework for Data Mining Using R
RForge.net

FastRWeb

About FastRWeb
GIT access
Download/Files
News
Check results
Package R docs

News/Changelog

1.2-1   (2023-11-28)
    o   Silence benign compiler warnings


1.2-0   (2021-11-03)
    o   add support for request headers (#11)
        They are passed as named character vectors in request$headers
        where the names as all lower-case. If not present they may be
        NULL or charcter() so use length() to check presence.

        For CGI back-end this is done by parsing the HTTP_xxx env vars
        and assigning then to the global environment.
        Note that this incurs a slight performance penalty, so it can be
        diabled by adding -DNO_HTTP_HEADERS to CPPFLAGS.

        For Rserve/httpd back-end the headers are already parsed for
        cookies so there is no significant penalty.


1.1-4   (2020-03-11)
    o   minor fixes only affecting rare systems:
        - use crypt() where available, do not assume unix is sufficient
        - include <crypt.h> on systems that have it and thus possibly
          require it in addition so standard headers (like Solaris)

    o   use C++ compiler in configure tests


1.1-3   (2020-03-10)
    o   use AC_LANG_SOURCE() in configure to avoid warnings

    o   minor fix in the documentation


1.1-2   (2020-03-02)
    o   enhance output functions to provide an option to escape
        special HTML characters. This (escape=TRUE)is now the default
        for oprint(), ohead() and otable().

    o   added FastRWeb:::htmlEscape(). It is currently not exported as
        to not clash with htmltools.

    o   append .pdf and .svg to the temporary file name in
        WebPlot for PDF and SVG output, because those back-ends
        always append the extension if not present. Also change
        tag type from "img" to "embed" for PDF and add the correct
        mime type for type="svg".

    o   clean up build system and compiler warnings, restore
        support for Windows including multi-arch builds.
        NOTE: Rcgi executables are now in the $(R_ARCH)
        subdirectory of cgi-bin, so pick the the desired
        architecture and install in cgi-bin as needed.

    o   in Rserve stand-alone setup pass the status code from
        the Status: header to the client in the response (#6)


1.1-1   (2015-07-27)
    o   clear the output buffer before serving run() scripts

    o   using out() on WebPlots will now use dataURI instead
        of temporary files

    o   import Cairo to avoid namespace clash with other packages
        that define Cairo to be something entirely different.


1.1-0   (2012-12-15)
    o   The interface to the R process has been enhanced to support
        request body and other methods including POST. A new global
        variable `request' is a list that is populated with various
        entries pertinent to the request:

        request$uri - URI of the request (used to be request.URI)
        request$method - method type (as string) such as "GET"
        request$c.type - content type of the request body
        request$c.length - length of the request body (-1 if
                           there is no body)
        request$body - raw vector containing the body of the request
        request$client.ip - IP address of the client (as string)
        request$raw.cookies - raw cookie string
        request$path.info - path part beyond the script name

        All strings are guaranteed to be "" if not set.
        request$body will be NULL if there is no body.

    o   The interface to the R process now sets a global variable
        webapi which is a real number that defines the version of
        the interface used to pass information. It is now set to 1.1
        and guarantees the information described above. This number
        will be increased in case new features are added to the API
        between the R process and the web server.

    o   FastRWeb now provides an internal `.run()' function which does
        the necessary processing of a request, so additional
        FastRWeb-compliant front-ends are easy to implement by simply
        creating the request structure and calling the `.run()'
        function.

    o   FastRWeb contains an experimental .http.request()
        implementation which can be used with Rserve's HTTP server,
        removing all middle layers - no webserver, CGI or PHP is needed.
        Simply evaluate .http.request <- FastRWeb:::.http.request
        during Rserve startup.

    o   FastRWeb now attempts to parse known content types - not just
        the query string but also "application/x-www-form-urlencoded"
        and multi-part encodings. If the key name is used, query
        string has higher precedence. It is still possible to separate
        the various types by hand from request$body, for multipart
        content content FastRWeb now provides parse.multipart()
        function (courtesy of Jeff Horner).

    o   Rcgi will respond with appropriate status code to various
        error conditions, such as failed connection. Previously, Rcgi
        would always respond with 200 OK.

    o   Rcgi bugfix: the parameter sanitization code was behaving
        improperly.

    o   Rcgi has been updated to switch to binary stdout for file and
        tmpfile on Windows, otherwise binary data (like images) will
        arrive malformed at the webserver when running FastRWeb on
        Windows (thanks to Francois Guillem for reporting and
        testing).

    o   clean up quoting inside attributes in o* tools

    o   added oclear() to re-set output and/or headers

    o   Parameters to run() were passed in URL-encoded form - that was
        a bug. They are now passed in decoded form as intended.
        WARNING: if you worked around this bug in your scripts for
        FastRWeb 1.0 make sure you remove the work around for
        FastRWeb 1.1 and higher (check for the presence of webapi
        if you need to support both).


1.0-1   (2011/12/10)
    o   added rudimentary form elements constructors:
        oinput(), oselection() and osubmit()

    o   some S3 methods were not registered in the namespace


1.0-0   (2011/10/07)
    o   CRAN release

    o   add examples and tmp.R implementation

    o   add support for headers manipulation

    o   add sample project root configuration
        and install.sh for installation


0.1-0   (2008/12/06)
    o   add WebResult and WebPlot classes

        (2008/13/13)
    o   first public version