All Projects → aliyun → haas-mini-program

aliyun / haas-mini-program

Licence: Apache-2.0 license
HaaS轻应用框架

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to haas-mini-program

libavrutil
Easy to use, lightweight and unified library for performing common microcontroller tasks
Stars: ✭ 21 (-19.23%)
Mutual labels:  embedded-devices
rottenjs
An all-in-one (2.6kb) Javascript library for web development
Stars: ✭ 15 (-42.31%)
Mutual labels:  javascript-framework
purescript-pop
😃 A functional reactive programming (FRP) demo created with PureScript events and behaviors.
Stars: ✭ 33 (+26.92%)
Mutual labels:  javascript-framework
DevLibs
This repo contains libraries for random electronic modules - created by me for different platforms and devices; Written mostly in C or C++, what allows to easily port them to different platform
Stars: ✭ 14 (-46.15%)
Mutual labels:  embedded-devices
djit.su
Reactive Editor
Stars: ✭ 38 (+46.15%)
Mutual labels:  application-framework
hafcaf
When you only want a little JavaScript in your SPA.
Stars: ✭ 17 (-34.62%)
Mutual labels:  javascript-framework
microgl
High-quality, no-compromise graphics library for embedded systems; currently under development.
Stars: ✭ 28 (+7.69%)
Mutual labels:  embedded-devices
PixelPixie
PixelPixie is a simple OSD and LCD fonts generator.
Stars: ✭ 18 (-30.77%)
Mutual labels:  embedded-devices
eevee
Generate model, repository, dao sources for Go application
Stars: ✭ 54 (+107.69%)
Mutual labels:  application-framework
nanobox-express
Quickstart for Express on Nanobox
Stars: ✭ 13 (-50%)
Mutual labels:  javascript-framework
Mage
Mage is a 3D Game Engine, built on top of THREE.js. It features Unity-like scripting, AMMO.js powered physics workers, an Infernojs powered UI and a clean API. Under (very) active development.
Stars: ✭ 76 (+192.31%)
Mutual labels:  javascript-framework
Rigley2-FlappyBug
The awaited sequel sees our Rigley friend jumping through firewalls "Flappy Bird" style
Stars: ✭ 27 (+3.85%)
Mutual labels:  javascript-framework
eaf-linter
🤪 A linter, prettier, and test suite that does everything as-simple-as-possible.
Stars: ✭ 17 (-34.62%)
Mutual labels:  javascript-framework
phd5-app
💜 Universal web application built upon Docker, PHP & Yii 2.0 Framework
Stars: ✭ 71 (+173.08%)
Mutual labels:  application-framework
ejscript
Embedthis Ejscript
Stars: ✭ 58 (+123.08%)
Mutual labels:  javascript-framework
utest
Lightweight unit testing framework for C/C++ projects. Suitable for embedded devices.
Stars: ✭ 18 (-30.77%)
Mutual labels:  embedded-devices
vueface
UI Components for Vue
Stars: ✭ 74 (+184.62%)
Mutual labels:  javascript-framework
virtual-dom
Application framework for real time collaboration using Croquet
Stars: ✭ 14 (-46.15%)
Mutual labels:  javascript-framework
terra-framework
Terra framework houses composed and higher order react components to help developers quickly build out new applications.
Stars: ✭ 60 (+130.77%)
Mutual labels:  application-framework
inter
The javascript framework to build highly interactive front-end web applications.
Stars: ✭ 55 (+111.54%)
Mutual labels:  javascript-framework

HaaS轻应用框架

HaaS

Hardware as a Service 硬件即服务,提供物联网软硬件的统一开发框架和服务。

轻应用框架

提供了支撑轻应用运行所需的全套基础设施。
是一套集成了包括硬件抽象、网络接口、物联网组件、运行时引擎、对象封装等功能的应用软件框架。

轻应用之所以,是因为有如下特点:

  • 硬件设备的开发可以不再依赖嵌入式软件技术栈,调用简洁的 API 即可操控硬件行为。
  • 采用解释型编程语言JavaScript,整个开发过程无需搭建嵌入式开发环境,也无需编译、烧写。
  • 支持一键热更新推送应用代码到硬件,极致开发体验。

开发说明

应用开发者

如果您希望开发轻应用,可以移步HaaS轻应用 - 使用文档,无需理解具体的实现原理。

系统和框架开发者

如果希望修改框架或移植到您的硬件平台,可以参考下述介绍。

目录结构

.
├── aos.mk               // 在AliOS Things上的编译脚本
├── Makefile             // 在Linux模拟环境的编译脚本
├── adapter              // 硬件和系统适配层
│   │── include          // 适配层接口定义
│   └── platform         // 不同平台的适配层实现
│       ├── aos-haas100  // 在HaaS100上基于AliOS Things的适配层参考实现
│       └── linux        // 在Linux模拟环境的适配层参考实现
├── components           // 功能组件
├── engine               // 运行时引擎
├── entry                // 框架主入口
├── example              // 示例代码
├── libjs                // 对象封装
├── main                 // 框架主任务
├── services             // 框架内部服务
├── test                 // 测试代码
├── tools                // 编译工具
└── utils                // 依赖的基础库

注:aos-haas100是在HaaS100上基于AliOS Things的适配层参考实现。

移植说明

移植流程

  1. adapter/platform/ 下新增一个目标硬件平台的目录。
  2. 实现 adapter/include/ 下定义的适配层接口。运行框架核心功能,需要完成以下标注(关键)的接口适配。
  3. 修改Makefile并交叉编译,或参考Makefile将源码添加到目标硬件平台的项目环境中完成编译。

适配层说明

adapter
├── include
│   ├── amp_fs.h             // 文件系统 (关键)
│   ├── amp_httpc.h          // HTTP客户端
│   ├── amp_kv.h             // 键值对存储 (关键)
│   ├── amp_location.h       // 位置服务
│   ├── amp_network.h        // 网络管理 (关键)
│   ├── amp_ota.h            // OTA系统升级
│   ├── amp_pcm.h            // 音频PCM读写
│   ├── amp_pm.h             // 电源管理
│   ├── amp_socket.h         // Socket (关键)
│   ├── amp_system.h         // 系统 (关键)
│   ├── amp_tcp.h            // TCP (关键)
│   ├── amp_tts.h            // TTS语音
│   ├── amp_udp.h            // UDP (关键)
│   └── peripheral           // 硬件外设
│       ├── amp_hal_adc.h
│       ├── amp_hal_can.h
│       ├── amp_hal_dac.h
│       ├── amp_hal_flash.h
│       ├── amp_hal_gpio.h
│       ├── amp_hal_i2c.h
│       ├── amp_hal_pwm.h
│       ├── amp_hal_rtc.h
│       ├── amp_hal_spi.h
│       ├── amp_hal_timer.h
│       ├── amp_hal_uart.h   // 串口 (关键)
│       └── amp_hal_wdg.h
└── platform
    ├── aos-haas100
    └── linux

致谢

HaaS轻应用站在巨人的肩上,由关键的开源项目强力驱动:

  • AliOS Things - 开源物联网操作系统
  • QuickJS - Bellard出品,不解释
  • Duktape - 资源开销与性能兼备的JavaScript引擎

HaaS轻应用也参考了以下优秀的开源项目:

  • Mongoose-OS - 采用mJS引擎的IoT固件开发框架
  • Espruino - 可以在MCU上运行的JavaScript框架
  • Johnny-Five - 用于搭建机器人和IoT的JavaScript框架
  • Cylon.js - 支持了40+种硬件平台的机器人和IoT编程框架

License

Apache License 2.0

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].