Rsp.nnfis deprecated. Recompile all RSP files to remove the use.
StreamServer's futureOnly argument is removed.
StreamServer's futureOnly argument is deprecated.
AssetLoader.cachecan be set to null (to disable caching).
[=data, encode: 'json']is supported
StreamServer's constructor is changed: disableLog replaces
HttpChannel.closereturns a Future instance.
- Issue 80: Allow
[:if]and any tag
- Specifying the etag attribute in the page tag won't imply
- Issue 79:
[:script]supports the async flag
- Issue 78:
- The server will be started with
- Add an option to start the server with runZoned() (see also https://code.google.com/p/dart/issues/detail?id=17468)
- Issue 74: StreamServer.onError shall catch all uncaught errors
RspUtil.nnx()is renamed to
December 16, 2013
- Issue 67: RSP's header directives shall be generated before handling ETAG and Last-Modified
November 20, 2013
- Issue 61: HttpServer.bind(address, port, backlog: backlog) return null
- The global variables, contentTypes and statusMessages, are moved to Rikulo Commons.
- Issue 59: error mapping not work
- Issue 53: FileLoader supports multipart/byteranges
- Issue 54: Support If-Match, If-None-Match, If-Modified-Since and If-Unmodified-Since
- Issue 55: Support If-Range
- Issue 56: Generalize FileLoader to support the loading from different resources, such as database
- Issue 57: RSP supports etag (and HttpStatus.NOT_MODIFIED)
- Issue 58: HttpConnect supports method to retrieve the locale(s) of the request
- Issue 51: FileLoader supports partial content, aka., range
- Issue 52: FileLoader supports ETag and caching
- Issue 49: RSP: Able to generate additional imported packages without specifying them in each RSP file
- Issue 48: RSP: A tag to simplify the implementation of custom tags s.t. dev needs to implement a closure only
- Channel, HttpChannel and SocketChannel are merged into HttpChannel
- Issue 47: RSP shall escape $ to prevent Dart from interpreting it.
- Issue 44: The page tag supports the part attribute to include other dart files, and the dart attribute to embed code before the function
- Issue 42: Allow a Stream server to listen multiple addresses/ports and web sockets
- Issue 43: Allow to map WebSocket directly without invoking WebSocketTransformer explicitly
- Issue 41: Able to encode the build number into JS and/or CSS s.t. the browse will use the latest JS/CSS automatically
- API changed because of the deprecation of Path
- StreamServer.chunkedTransferEncoding supported for compressing the output with GZIP
- Issue 38: Unable to use the nested groups in route segments
- Issue 36: Change the spec of
[:json]to generate a JSON object that can be parse as Dart object directly
- Issue 35: A tag for generating the dart script for development, while generating only JS in production
- HttpConnect.buffer is renamed to HttpConnect.stringBuffer, while HttpConnect.buffer reserved for bytes
- Issue 32: HttpConnect provides API to retrieve the information of the browser
- Issue 31: RSP supports last-modified as the time it has been compiled
- Issue 33: The expression tag (
[= expr]) supports the encoding option
- Issue 34: Make the webapp directory optional
- Issue 28: Support the JSON tag for simplifying the rendering of a Dart object
- Issue 29: The homDir argument shall interpret the relative path against the root directory of the application
- HttpConnect.error has been removed. All errors shall be wired back Future.
- StreamServer.host can be String or InternetAddress, and the default is ANY_IP_V4.
- Issue 27: Able to configure Stream server to enforce the return of Future in every handler.
- Issue 16: Make include, forward and handler to return Future if there is any async task
- Issue 17: include and forward shall handle the query string
- Issue 24: llow RSP compiler receive a FilenameMapper function to map output files
- Issue 26: Support HttoConnect.redirect(uri) to redirect to another URI
- The request handler must return
Futureif it spawned an asynchronous task.
- The request handler can't return a forwarding URI. Rather, it shall invoke and return
- The request handler needs not to close the connection. It is done automatically.
- RSP will import
- The request filter must return
HttpConnectare removed. Chaining request handlers is straightforward: it is the same as chaining
- Issue 11: Allow URI and filter mapping to be added dynamically
- The syntax of a tag has been changed from
[:tag]. The old syntax still works but will be removed in the near future.
- Issue 7: Allow URI mapping to be pluggable
- Issue 8: URI mapping supports RESTful like mapping
- Issue 9: URI mapping allows to forward to another URI
- [page] introduces the partOf and import attributes
- [dart] is always generated inside the render function
- Issue 2: RSP files can be put in the client folder (i.e., not under the webapp folder)
- Issue 3: [page] partOf accepts a dart file and maintains it automatically
- Issue 4: Allow to mix expression (
[=...]) with literal in tag attributes
- The composite view (aka., templating) is supported.
- The syntax of the include and forward tags are changed.
- The var tag is introduced.
- URL mapping supports grouping, such as /user/(name:[^/]*)
- StreamServer.run() is deprecated. Use start(), startSecure() or startOn() instead.
- Support the new Dart I/O.
- The filter mapping is supported.
- HttpConnect.then is removed. Use Future.catchError() instead.
- The error mapping takes the syntax of Map
- The comment tag is renamed to a pair of