Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/picolab/pico-engine
An implementation of the pico-engine hosted on node.js
https://github.com/picolab/pico-engine
decentralization iot krl pico-engine
Last synced: 2 months ago
JSON representation
An implementation of the pico-engine hosted on node.js
- Host: GitHub
- URL: https://github.com/picolab/pico-engine
- Owner: Picolab
- License: mit
- Created: 2016-04-13T17:13:48.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-12T17:50:56.000Z (10 months ago)
- Last Synced: 2024-11-07T02:03:12.218Z (3 months ago)
- Topics: decentralization, iot, krl, pico-engine
- Language: JavaScript
- Homepage: http://picolabs.io/
- Size: 10.5 MB
- Stars: 43
- Watchers: 7
- Forks: 8
- Open Issues: 193
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# pico-engine
[![Node version](https://img.shields.io/node/v/pico-engine.svg)](https://nodejs.org/en/download/)
[![Build Status](https://github.com/Picolab/pico-engine/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/Picolab/pico-engine/actions/workflows/test.yml)An implementation of the [pico-engine](http://www.windley.com/archives/2016/03/rebuilding_krl.shtml) hosted on node.js
## Getting Started / Installing / Configuration
See [packages/pico-engine](https://github.com/Picolab/pico-engine/tree/master/packages/pico-engine#readme)
for detailed step-by-step instructions to get started.## Contributing
This section is for those who want to contribute to the `pico-engine` source code.
KRL programmers would be better off following the link in the previous section.The `pico-engine` is made up of several smaller modules. Each with their own documentation and test suite.
However they live in this repository in the `packages/` directory (mono-repo style using [lerna](https://github.com/lerna/lerna))
* **pico-engine** - this is the npm package people install and use
* **pico-engine-core** - executes compiled KRL and manages event life-cycle
* **pico-engine-ui** - the default UI of pico-engine
* **krl-stdlib** - standard library for KRL
* **krl-compiler** - compiles AST into a JavaScript module
* **krl-parser** - parses KRL to produce an abstract syntax tree (String -> AST)
* **krl-generator** - generates KRL from an AST (AST -> String)
* **krl-editor** - in browser editor for KRLTo run the pico-engine in development mode do the following:
```sh
$ git clone https://github.com/Picolab/pico-engine.git
$ cd pico-engine
$ npm run setup
$ npm start
```That will start the server and run the test. `npm start` is simply an alias for `cd packages/pico-engine && npm start`
**NOTE about dependencies:** generally don't use `npm i`, rather use `npm run setup` from the root. [lerna](https://github.com/lerna/lerna) will link up the packages so when you make changes in one package, it will be used in others.
### Working in sub-package
Each sub-package has it's own tests. And the `npm start` command is wired to watch for file changes and re-run tests when you make changes. For example, to make changes to the parser:
```sh
$ cd packages/krl-parser/
$ npm start
```NOTE: When running via `npm start` the `PICO_ENGINE_HOME` will default to your current directory i.e. your clone of this repository.
### Making changes
Use a branch (or fork) to do your work. When you are ready, create a pull request. That way we can review it before merging it into master.
The Pico Labs documentation has a page inviting contributions and giving a step-by-step example, at [Pico Engine welcoming your contributions](https://picolabs.atlassian.net/wiki/spaces/docs/pages/704675843/Pico+Engine+welcoming+your+contributions).
## Changelog
To view details about versions: [CHANGELOG.md](https://github.com/Picolab/pico-engine/blob/master/CHANGELOG.md)
## License
MIT