Top AI Repos โ open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
๐ A React Renderer for SSD1306 OLED chip on Raspberry Pi.
| Date | Stars |
|---|---|
| 2026-07-24 | 385 |
| 2026-07-25 | 385 |
| 2026-07-28 | 385 |
| 2026-07-30 | 385 |
| 2026-08-06 | 385 |
Today
โ stars today
This week
โ stars this week
This month
โ stars this month
Momentum
0.0
growth rate 0.00%/day
# React SSD1306
A React Renderer for SSD1306 OLED chip on Raspberry Pi

For those who doesn't have the device, a canvas-based web emulator is also included!
## Introduction
This project demonstrates how to:
* Use React together with [QuickJS](https://bellard.org/quickjs/) on Raspberry Pi.
* Develop basic C module for QuickJS.
* Build a custom "**native & dynamic**" renderer for React.
Checkout the [Tutorial](./docs/tutorial.md), or my [Chinese blog post](https://ewind.us/2019/react-ssd1306) for details.
## Getting Started
This project is originally designed to work on Raspberry Pi, but a web emulator is also available and works out of the box. Notice that no matter you run it on web or native, the whole React-related codebase is exactly the same.
### Web Approach
You can try out the reconciler example, even if you don't have a Raspberry Pi. In this way only Node.js and [ParcelJS](https://parceljs.org/) are required:
``` bash
cd react-ssd1306/app
parcel src/index.html
```
Then just open `https://localhost:1234` to see the emulator.
### Native Approach
Connect the chip, make sure you have QuickJS and Node.js installed on your Raspberry Pi, with I2C interface enabled. Few extra packages are also required:
``` bash
sudo apt-get install i2c-tools libi2c-dev
```
> Node.js is only required for JS module bundling and package management here.
Init the project:
``` bash
cd react-ssd1306/app
npm install && cd ..
npm run build # build JS and C modules
npm start # start the compiled binary
```
## Usage
Simply edit `./app/index.js` as main entrance:
``` js
import './polyfill.js'
import React from 'react'
import { SSD1306Renderer, Text, Pixel } from './renderer.js'
class App extends React.Component {
constructor () {
super()
this.state = { hello: 'Hello React!', p: 0 }
}
render () {
const { hello, p } = this.state
return (
<React.Fragment>
<Text row={0} col={0}>{hello}</Text>
<Text row={1} col={0}>Hello QuickJS!</Text>
<Pixel x={p} y={p} />
</React.Fragment>
)
}
componentDidMount () {
// XXX: Emulate event driven update
setTimeout(() => this.setState({ hello: 'Hello Pi!', p: 42 }), 2000)
setTimeout(() => this.setState({ hello: '', p: -1 }), 4000)
}
}
SSD1306Renderer.render(<App />)
```
## License
MIT
Excerpt of 2,347 characters
Read on GitHubWould you bet a product on this? Bounded 0โ100 and slow moving.
matched fp:ae4adf3d6b821357, topic:tutorial, readme:tutorial