3 Star 2 Fork 0

Gitee 极速下载/lisp-web-toolkit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/xh4/web-toolkit
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

Lisp Web Toolkit

lisp-web-toolkit.com

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

Ant Design, Ant Vision, ...

Systems

HTTP

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

WebSocket

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.

HTML

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.

JSON

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.

URI

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.

CSS

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

JavaScript

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.

DOM

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

Component

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

Roadmap

  • Overall
    • Use in production environments
    • Write documentation
    • Carefully design conditions and errors
    • Write more tests
    • Add project build status graph
    • Add code coverage informataion
  • HTTP
    • Use Asynchronous I/O in LispWorks
    • Use Recursive Event Dispatching (SERVE-EVENT) in SBCL
    • 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
  • URI
  • HTML
    • Implement parser
    • Implement pretty print(?) (NO)
    • Refine element constractor error report
    • Implement DOM, abandon CXML's DOM implementation
    • Test against Web Platform Tests
  • JSON
    • Test against JSONTestSuite
    • 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

Xiangyu He <xh@coobii.com>

License

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

Copyright (c) 2018-2020, Xiangyu He All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holders nor the names of contributors to this software may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

Lisp Web Toolkit 是使用 Common Lisp 开发的,面向对象的开源 Web 框架,支持 URI、HTML、CSS、JSON、HTTP、WebSocket 等功 展开 收起
README
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Lisp
1
https://gitee.com/mirrors/lisp-web-toolkit.git
git@gitee.com:mirrors/lisp-web-toolkit.git
mirrors
lisp-web-toolkit
lisp-web-toolkit
master

搜索帮助