/rax

:tophat: A universal React-compatible render engine.

Primary LanguageJavaScriptOtherNOASSERTION

Rax

A universal React-compatible render engine.


Rax is a universal JavaScript library with a largely React-compatible API. If you use React, you already know how to use Rax.

Fast: blazing fast virtual DOM.

🎯 Tiny: 8.0kb only after min+gzip.

🎨 Universal: cross Browser、Weex and Node.js.

Size Comparison

Angular 1.5.8 - 55.4kb (gzip)

React 15.3.2 - 43.7kb (gzip)

Vue 2.1.8 - 17.9kb (gzip)

Rax 0.0.2 - 8.0kb (gzip)

Server-side Rendering Comparison

Benchmark repository: Run on a MacBook Air Intel Core i5 @1.4 GHz x 2 with 8 GB memory.

Library renderToString (per second)
React@15.3.2 297 op/s
Vue@2.0.8 1092 op/s
Rax@0.0.2 1553 op/s (fastest)

Quick Start

Install the Rax CLI tools to init project:

npm install rax-cli -g
rax init YourProjectName

Start local server to launch project:

cd YourProjectName
npm run start

Examples

import {createElement, Component, render} from 'rax';
import {Text} from 'rax-components';

class Hello extends Component {
  render() {
    return <Text style={styles.title}>Hello {this.props.name}</Text>;
  }
}

const styles = {
  title: {
    color: '#ff4400',
    fontSize: 48,
    fontWeight: 'bold',
  }
};

render(<Hello name="world" />);

More examples take a look at the examples folder:

Rax Renderers

Universal Libraries

Developer Tools

  • React Developer Tools: Allow you inspect and modify the state of your Rax components at runtime in Chrome Developer Tools.

React Developer Tools

Redux DevTools extension

Contributing

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing.

Development Workflow

After cloning rax, run npm install to fetch its dependencies.
Run npm run setup link and bootstrap project before development. Then, you can run several commands:

  • npm run lint checks the code style.
  • npm test runs the complete test suite.
  • npm test -- --watch runs an interactive test watcher.
  • npm test <pattern> runs tests with matching filenames.
  • npm run build creates lib and dist folder with all the packages.
  • npm start start local server with examples folder.

Weex Logo