All Projects ā†’ gr0uch ā†’ s2

gr0uch / s2

Licence: BSD-3-Clause license
A function for reactive web UI.

Programming Languages

common lisp
692 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to s2

web
šŸ§± Write your website in pure Swift with power of webassembly. DOM, CSS and all the WebAPIs are available out of the box.
Stars: āœ­ 44 (+2.33%)
Mutual labels:  reactive, dom
bassdrum
reactive, type safe components with preact and rxjs.
Stars: āœ­ 44 (+2.33%)
Mutual labels:  reactive, dom
Mag.js
MagJS - Modular Application Glue
Stars: āœ­ 157 (+265.12%)
Mutual labels:  reactive, dom
lego
šŸš€ Web-components made lightweight & Future-Proof.
Stars: āœ­ 69 (+60.47%)
Mutual labels:  reactive, dom
Sinuous
šŸ§¬ Light, fast, reactive UI library
Stars: āœ­ 740 (+1620.93%)
Mutual labels:  reactive, dom
Scalajs Bootstrap
Scala.js bootstrap components
Stars: āœ­ 55 (+27.91%)
Mutual labels:  reactive, dom
Mogwai
The minimalist, obvious, graphical, web application interface
Stars: āœ­ 249 (+479.07%)
Mutual labels:  reactive, dom
netifi-quickstart-java
Project to assist you in getting started using Netifi.
Stars: āœ­ 23 (-46.51%)
Mutual labels:  reactive
crab
JavaScript library for building user interfaces with Custom Elements, Shadow DOM and React like API
Stars: āœ­ 22 (-48.84%)
Mutual labels:  dom
Mei.js
a minimal, simple and helpful library for you
Stars: āœ­ 15 (-65.12%)
Mutual labels:  dom
dom-to-image-more
Generates an image from a DOM node using HTML5 canvas
Stars: āœ­ 231 (+437.21%)
Mutual labels:  dom
xpath2.js
xpath.js - Open source XPath 2.0 implementation in JavaScript (DOM agnostic)
Stars: āœ­ 74 (+72.09%)
Mutual labels:  dom
sample-spring-reactive
sample reactive microservices using spring 5, spring boot, spring webflux and project reactor
Stars: āœ­ 26 (-39.53%)
Mutual labels:  reactive
ency
Enhanced concurrency primitives for Javascript.
Stars: āœ­ 32 (-25.58%)
Mutual labels:  reactive
ReactiveAPI
Write clean, concise and declarative network code relying on URLSession, with the power of RxSwift. Inspired by Retrofit.
Stars: āœ­ 79 (+83.72%)
Mutual labels:  reactive
r2dbc-proxy
R2DBC Proxying Framework
Stars: āœ­ 108 (+151.16%)
Mutual labels:  reactive
picoCSS
picoCSS - really small JavaScript Framework
Stars: āœ­ 62 (+44.19%)
Mutual labels:  dom
spring-boost
Introduce Clojure and live-coding power to your Spring Boot application!
Stars: āœ­ 23 (-46.51%)
Mutual labels:  reactive
realar
5 kB Advanced state manager for React
Stars: āœ­ 41 (-4.65%)
Mutual labels:  reactive
emerj
Emerj is a tiny JavaScript library to render live HTML/DOM updates efficiently and non-destructively, by merging an updated DOM with the live DOM, and only changing those elements that differ.
Stars: āœ­ 56 (+30.23%)
Mutual labels:  dom

sĀ²

test status

s2 is a function for reactive web UI.

See the documentation page for usage details.

Benchmarks

See js-framework-benchmark results table.

Flags

  • s2.shouldUnmountRoot: enabled by default, but can be disabled. This will automatically call unmount when the DOM nodes mapped to an object are removed. This should only be disabled if you need to keep updating nodes that may be removed and appended later.
  • s2.isDeferred (experimental): this will defer setting proxy values as a microtask. This might be preferable if there is significant blocking in between updates. However, it can break functionality in case there are updates that depend on a previous update in the same tick.
  • s2.window: set a different global object for server-side rendering.
  • s2.debug: turn on messages in the console. Warning: has a performance impact.

Development

s2 is written in the Parenscript subset of Common Lisp.

Need to build the psbuild binary from parenscript-builder and put it here to compile with make. I couldn't figure out how to automate including this dependency yet.

Testing

Run automated tests with Deno:

make && deno test test/

Manual testing pages

Run a web server like http-server . and then navigate to the /test/ directory. HTTP is required for loading modules.

Name

s2 is short for simulacra 2. Prior art: I wrote a similar library that is limited to ES5, so no proxies.

License

BSD 3-Clause

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].