{"id":19219662,"url":"https://github.com/picolab/pico-engine","last_synced_at":"2025-04-15T21:07:47.869Z","repository":{"id":37484532,"uuid":"56171382","full_name":"Picolab/pico-engine","owner":"Picolab","description":"An implementation of the pico-engine hosted on node.js","archived":false,"fork":false,"pushed_at":"2024-04-12T17:50:56.000Z","size":11036,"stargazers_count":43,"open_issues_count":193,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-07T02:03:12.218Z","etag":null,"topics":["decentralization","iot","krl","pico-engine"],"latest_commit_sha":null,"homepage":"http://picolabs.io/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Picolab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-13T17:13:48.000Z","updated_at":"2024-10-04T14:05:25.000Z","dependencies_parsed_at":"2024-04-12T18:54:26.674Z","dependency_job_id":null,"html_url":"https://github.com/Picolab/pico-engine","commit_stats":{"total_commits":3374,"total_committers":21,"mean_commits":"160.66666666666666","dds":"0.26970954356846477","last_synced_commit":"fcac1ac0788035385424f0f3796ff86eccd79c58"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Picolab%2Fpico-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Picolab%2Fpico-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Picolab%2Fpico-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Picolab%2Fpico-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Picolab","download_url":"https://codeload.github.com/Picolab/pico-engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223839578,"owners_count":17211964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["decentralization","iot","krl","pico-engine"],"created_at":"2024-11-09T14:32:25.411Z","updated_at":"2024-11-09T14:32:25.483Z","avatar_url":"https://github.com/Picolab.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pico-engine\n\n[![Node version](https://img.shields.io/node/v/pico-engine.svg)](https://nodejs.org/en/download/)\n[![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)\n\nAn implementation of the [pico-engine](http://www.windley.com/archives/2016/03/rebuilding_krl.shtml) hosted on node.js\n\n## Getting Started / Installing / Configuration\n\nSee [packages/pico-engine](https://github.com/Picolab/pico-engine/tree/master/packages/pico-engine#readme)\nfor detailed step-by-step instructions to get started.\n\n## Contributing\n\nThis section is for those who want to contribute to the `pico-engine` source code.\nKRL programmers would be better off following the link in the previous section.\n\nThe `pico-engine` is made up of several smaller modules. Each with their own documentation and test suite.\n\nHowever they live in this repository in the `packages/` directory (mono-repo style using [lerna](https://github.com/lerna/lerna))\n * **pico-engine** - this is the npm package people install and use\n * **pico-engine-core** - executes compiled KRL and manages event life-cycle\n * **pico-engine-ui** - the default UI of pico-engine\n * **krl-stdlib** - standard library for KRL\n * **krl-compiler** - compiles AST into a JavaScript module\n * **krl-parser** - parses KRL to produce an abstract syntax tree (String -\u003e AST)\n * **krl-generator** - generates KRL from an AST (AST -\u003e String)\n * **krl-editor** - in browser editor for KRL\n\nTo run the pico-engine in development mode do the following:\n\n```sh\n$ git clone https://github.com/Picolab/pico-engine.git\n$ cd pico-engine\n$ npm run setup\n$ npm start\n```\n\nThat will start the server and run the test. `npm start` is simply an alias for `cd packages/pico-engine \u0026\u0026 npm start`\n\n**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.\n\n\n### Working in sub-package\n\nEach 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:\n\n```sh\n$ cd packages/krl-parser/\n$ npm start\n```\n\nNOTE: When running via `npm start` the `PICO_ENGINE_HOME` will default to your current directory i.e. your clone of this repository.\n\n### Making changes\n\nUse 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.\n\nThe 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).\n\n## Changelog\n\nTo view details about versions: [CHANGELOG.md](https://github.com/Picolab/pico-engine/blob/master/CHANGELOG.md)\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicolab%2Fpico-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpicolab%2Fpico-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicolab%2Fpico-engine/lists"}