Coder Social home page Coder Social logo

jeeyo / isere Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 761 KB

(WIP) Serverless platform aimed for microcontrollers

License: MIT License

Makefile 6.63% C 86.59% Dockerfile 0.55% C++ 6.00% JavaScript 0.04% Cap'n Proto 0.19%
javascript microcontroller serverless

isere's Introduction

Isère

Isère (/iːˈzɛər/)

A serverless platform aimed to be running on Microcontrollers

The goal is to create a low-power serverless platform that can handle simple stateless request like logging in which will require accessing to database and creating JWT token

Current progress

  • FreeRTOS as Kernel
  • QuickJS as JavaScript runtime
    • setTimeout / clearTimeout (FreeRTOS Software Timer)
  • HTTP server
    • Event Loop
    • Static Files (?)
  • Unit tests
    • loader
    • js
    • httpd
    • logger
    • polyfills
      • setTimeout
  • Unit tests on CI
  • File System Abstraction
  • Configuration File
  • Integration tests
  • Integration tests on CI
  • Node-like APIs (ref. workerd)
    • assert
    • buffer
    • crypto
    • diagnostics_channel ❌
    • events
    • path
    • process.env
    • stream (?)
    • string_decoder
    • util
  • Fetch API
  • QuickJS Memory Leak Check
  • Use less printf()
  • QuickJS Project Template
  • Low-power mode
  • Benchmark
  • Port to Raspberry Pi Pico (RP2040) (LittleFs + FreeRTOS+POSIX + FreeRTOS+TCP)
  • Integrate with some Analytics and Monitoring Platforms
  • Port to ESP32?
  • MicroPython?

Limitations

  • No Keep-Alive support
  • JavaScript handler function needs to be stored sequentially and addressible in a Flash memory
  • File system is for storing static files and configuration files

Building and Running

Prerequisites:

  • automake
  • make
  • gcc
  • libtool
  • ninja (optional for building c-capnproto)
# install dependencies
brew install automake libtool ninja
# or
sudo apt install -y build-essential libtool ninja-build

git clone <this f***ing repo>
git submodule update --init

# compile dependencies
make -j deps

# compile examples javascript
make -j .examples

# compile isere
make -j

# run isere
./isere

try to access http://localhost:8080/ and see the process logs

feel free to try modify examples/echo.esm.js (don't forget to recompile it using make -j .examples)

Running Tests

make -j unittest
./unittest

isere's People

Contributors

jeeyo avatar

Stargazers

 avatar

Watchers

 avatar

isere's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.