lisp web html 开发环境,lisp-web-toolkit: Lisp Web Toolkit 是使用 Common Lisp 开发的,面向对象的开源 Web 框架,支持 URI、HTML...

范凡
2023-12-01

Lisp Web Toolkit

Object-Oriented Reactive Lisp Systems for Rapid Web Application Development

Status

Layer 1: (Work in Progress) Rich set of features for fundamental Web-related technologies

HTTP, WebSocket, URI, JSON, DOM, HTML, CSS, JavaScript

Layer 2: (Experimeltal) Component abstraction and reactive behavior

Component, Live

Layer 3: (Planning) Integration with enterprise-class vendor libraries

Systems

WT.HTTP provides HTTP functionality based on RFC 7231 Hypertext Transfer Protocol (HTTP/1.1), together with implementation of server and client.

WT.WEBSOCKET provides WebSocket functionality based on RFC 6455 The WebSocket Protocol, with interface inspired by JSR 356, Java API for WebSocket. The system is tested against the Autobahn WebSocket Testsuite.

WT.HTML implements HTML constructor, parser and serializer. The parser is designed to conform to the WHATWG HTML Specification, as is implemented by all major web browsers. It uses the Document Object Model (DOM) provided by WT.DOM.

WT.JSON implements JSON encoder and decoder based on ECMA-404 The JSON Data Interchange Standard. It distinguishes null, false and [] from Lisp's NIL thus supports identical transformation between JSON values. It provides object constructor and accessor to build and access nesting JSON objects. The system is tested against JSONTestSuite.

WT.URI provides URI parser, render and constructor with support for UTF-8 characters, IPv6 addresses and query parameters handling. It utilizes recursive descent parser combinators to provide a concise implementation that is close to the definition in RFC 3986 Uniform Resource Identifier (URI): Generic Syntax.

WT.CSS implements CSS constructor, parser and serializer based on specifications introduced in CSS Snapshot 2018.

WT.JAVASCRIPT implements JavaScript parser and serializer based on ECMAScript 2016 Language Specification (ECMA-262 7th Edition) with support for JSX syntax extension. It utilizes syntax tree components from the ESTree project.

WT.DOM implements Document Object Model (DOM) based on recent version of DOM Living Standard, it covers chapters on Nodes and Traversal.

WT.COMPONENT provices component abstraction, it combines Web Components style strong encapsulation and React style declarative DOM synchronization.

Roadmap

Overall

Use in production environments

Carefully design conditions and errors

Write more tests

Add project build status graph

Add code coverage informataion

HTTP

Abandon usocket & bordeaux-threads, write implementation-dependent code

Implement server statistics and metrics monitoring

Implement traffic throttling and message size limiting

Implement authentication, authorization and access control

Implement static file serving

Implement cache control

Implement compression

Implement logging

Implement HTTP/2

Implement common handlers

Implement virtual host

(Client) Support HTTPS

(Client) Support compression and decompression

(Client) Support HTTP Proxy

(Client) Support SOCKS Proxy

(Client) Support Basic Auth

(Client) Implement Cookie store

(Client) Support caching

WebSocket

Implement server statistics and metrics monitoring

Implement traffic throttling and message size limiting

Support WSS for both client and server

HTML

Implement parser

Implement pretty print(?) (NO)

Refine element constractor error report

Implement DOM, abandon CXML's DOM implementation

JSON

Implement accessors for object

Implement identical transformation for JSON values (null, false, [])

DOM

Implement common used functions

Implement namespace

Implement XPath

JavaScript

Implement JavaScript <=> S-expression code transformer

CSS

Parse common used property values and implement CSSOM

Author

License

Copyright 2018-2020 Xiangyu He. Released under the 3-Clause BSD License.

 类似资料: