brought to you as libre software with joy and pride by Artificial Engineering.
Support our libre Bot Cloud via BTC 1CamMuvrFU1QAMebPoDsL3JrioVDoxezY2.
**QR Codes**
![QR codes](./guides/asset/qr-codes.png)**Table of Contents**
- [Overview](#overview) - [Features](#features) - [Workflow](#workflow) - [Platform Support](#platform--fertilizer-support) - [Quickstart](#quickstart) - [Developer Guides](#developer-guides) - [Contributor Guides](#contributor-guides) - [Help](#help) - [License](#license)We went live with our AI on 1. Sept 2016. This caused a broken git commit
history and a necessary hard rebase. If your Fork does not contain the
:balloon: AI History starts here
on its master
branch, please delete
it and re-fork it again.
We hope that this will not occur again in future, so far the new git
history and the merge flow (using theirs
merge strategy on above
mentioned commit) appears to be stable.
Thank you for your understanding.
These are the things that we are currently working on:
- lychee.ai.neat (ES/HyperNEAT AI) is being refactored.
- lychee.js Editor is being refactored to integrate all Cultivator Tools' functionalities.
- lychee.js Guide is subject to change (to integrate new AI / Editor stack).
- lychee.js Garden is being implemented.
The lychee.js Project started in 2012 and is in active development. The following Repositories are related to the lychee.js Engine:
- lychee.js Guide contains architecture explanations and concept documentations (WIP).
- lychee.js Runtime contains all pre-compiled lychee.js Runtimes and Fertilizers.
- lychee.js Library contains the lychee.js Library (installable via
bower
andnpm
). - lychee.js Harvester contains the lychee.js Harvester (forked from
/libraries/harvester
). - lychee.js Website contains the lychee.js Website (hosted at https://lychee.js.org).
- lychee.js Bundle generates the OS-ready lychee.js Bundles (published at releases section).
- lychee.js Future contains all Concepts and Ideas not yet finished.
The following Accounts are related to the lychee.js Engine:
- @cookiengineer is the core maintainer and founder of this project.
- @humansneednotapply is the account used by our software bots.
lychee.js is a Next-Gen Isomorphic Application Engine that offers a complete solution for prototyping, development, maintenance and deployment of applications. The underlying technology stack does not matter (HTML5, WebGL, OpenGL, OpenGLES, libSDL) and is completely automated behind the scenes.
The lychee.js Engine aims to deliver Total Automation through Artificial Intelligence and better Software Architecture.
Everything listed here requires zero lines of code overhead and is already fully integrated in the lychee.js Boilerplate:
The lychee.js Core and Definition System:
- Isomorphic Application Engine (runs pretty much everywhere)
- Language is only ES5/ES6 JavaScript Code, nothing else
- Composite Pattern inspired Entity/Component System
- Definition System embraces Simplicity and Feature Detection
- Sandboxing System embraces automated Error Reports, Analytics and Debugging
- Serialization System allows Re-Simulation on any Platform
- Built-In Offline Storage Management and Network Synchronization
The lychee.js Software Bots:
- Graphical Asset Management and Entity/Scene Design Tool (Editor)
- Graphical Project Management and Server Maintenance Tool (Ranger)
- Command-Line Continous Integration Server (Harvester)
- Command-Line Wizard for Projects and Libraries (Breeder)
- Command-Line Builder and Cross-Compiler (Fertilizer)
- Command-Line Fuzz-Tester and Code-Refactorer (Strainer)
Features of the lychee.js Software Bots:
- Automated Code Refactoring, Bug Fixing and Code Improvements
- Automated Design Tracking, Layout and Flow Optimization
- Automated Packaging for Embedded, Console, Mobile, Desktop and Server Apps
- Automated Deployment via git and Live-Updates
- Automated Reactive/Responsive UI/UX Components
- Automated Debugging, Network and UI/UX Flow Analysis
- Automated Testing and Integration with the AI
- Automated Networking (Peer-to-Peer HTTP1.1/2.0 and WS13 with Local/Global Discovery)
- Automated Network Services and Traffic Balancing/Sharding
Every (not sandboxed) lychee.js Harvester is connected to the lychee.js Peer Cloud and is contributing to the evolutionary AI's knowledge and improves its capabilities for all others.
The lychee.js Engine uses CARTEL/ES-HyperNEAT as an evolutionary AI that is connected to a Botnet of lychee.js Harvesters. Each and every Definition written in lychee.js contributes to the AI so that it can predict, suggest and improve all other Projects.
The development process is optimized for Blink-based web browsers (Chromium, Google Chrome, Opera) and their developer tools. We honestly recommend NOT using Firefox due to lack of developer and debugging tools nor has it any remote debugging protocol.
We ain't doing HTML5 websites or single-page-webapps here. If you want to teach lychee.js those Legacy Technologies, there's the Legacy Library.
The target platforms are described as so-called Fertilizers.
Those Fertilizers cross-compile everything automagically
using a serialized lychee.Environment
that is setup in
each project's or library's lychee.pkg
file.
Target | Fertilizer | Package | armv7 | x86 | x86_64 |
---|---|---|---|---|---|
Browser | html | zip, html | x | x | x |
GNU/Linux | html-nwjs, node, node-sdl | bin | x | x | x |
OSX | html-nwjs, node, node-sdl | app, bin | x | ||
Windows | html-nwjs, node, node-sdl | exe | x | x | |
Android | html-webview, node, node-sdl | apk, bin | x | x | x |
BlackberryOS | html-webview, node, node-sdl | apk, bin | x | x | x |
FirefoxOS | html-webview | zip | x | x | x |
iOS | html | x | |||
Ubuntu Touch | html-webview, node | deb, bin | x | x | x |
The iOS Fertilizer has currently no support for cross-compilation
due to XCode's gcc limitations. You can still create an own WebView
iOS App and use the html
platform adapter.
This is the it-works-failsafe guide of how to install the lychee.js Engine on your development machine. For everything related to Bundles, Dev Ops, Security, Deployments and Virtualization - please consult the lychee.js Guide.
1) Installation
The Net Installer automatically installs the lychee.js Engine
on any UNIX-compatible machine (arm, x86 or amd64). The only
requirements beforehand are working bash
, curl
and git
.
The lychee.js Engine installation requires at least 2GB of free
memory space at /opt/lycheejs
. 4GB are recommended to have a
fully working AI knowledge integration.
Depending on your internet connection speed, the installation will take a couple minutes (needs to download ca. 500MB zip file of runtime binaries which is hosted in the releases section of the lycheejs-runtime repository).
Notes:
- Windows is unsupported as development host. Use a VM, the Docker Image or the Dockerfile instead.
- GNU/Linux requires either of
apt-get
,dnf
,pacman
,yum
orzipper
installed beforehand. - Mac OSX requires brew installed beforehand.
- FreeBSD/NetBSD requires
pkg
installed and Linux Compatibility activated beforehand.
# Install lychee.js Engine into /opt/lycheejs
sudo bash -c "$(curl -fsSL https://lychee.js.org/install.sh)";
2) Bootup
The lycheejs-harvester
integrates all projects with the
Software Bots. Start the development
profile and open
http:https://localhost:8080
in your Blink-based Browser.
cd /opt/lycheejs;
# Bootup lychee.js Harvester
lycheejs-harvester start development;
3) Integration
The lychee.js Project is tightly integrated with our Artificial Intelligence, which is represented by the account @humansneednotapply.
If you want to have our AI to learn and improve from your project
(read the LICENSE section for caveats first), you need to create a
Personal Access Token
with repo
rights and put the token in the .github/TOKEN
file:
cd /opt/lycheejs;
echo "MY-PERSONAL-ACCESS-TOKEN" > .github/TOKEN;
Then you must add the account @humansneednotapply
to your lychee.js Project's repository collaborators in its
Settings > Collaborators & teams
section.
Notes:
- You need to add @humansneednotapply to each of your lychee.js Projects' repositories.
- You do not need to add @humansneednotapply to your lychee.js Fork.
If you want to develop lychee.js Projects or Libraries, the
lychee.js Guide
helps you to get started easily.
Please let us know if we can improve anything in these documents by opening up an Issue.
If you have any questions, feel free to join us on #artificial-engineering @ freenode.
These are our official social media channels:
- Twitter: https://twitter.com/lycheejs
- Reddit: https://reddit.com/r/lycheejs
- IRC: #artificial-engineering @ freenode.
- Email: robot [insert an at here] artificial.engineering
The lychee.js Engine (defined as lycheejs repository) is (c) 2012-2016 Artificial-Engineering and released under MIT / Expat license.
The generated code by our Artificial Intelligence (namely the GitHub Account
@humansneednotapply or the commit's
e-mail address robot [ insert an at here] artificial.engineering
) is released
under GNU GPL 3 license.
The date of each commit is equivalent to the date (Central European Timezone) of claimed copyright and license, no matter from which timezone or physical location they were commited from.
The generated code by the Artificial Intelligence overrules the MIT / Expat license in every case, with no exceptions. The code is distributed in a libre way to guarantee free and open knowledge distribution for our Software Bots.
The projects (defined as /projects
inside the lycheejs
repository) and their Assets are licensed under CC BY-SA 4.0
license.
The lychee.js Runtimes (defined as lycheejs-runtime repository) are owned and copyrighted by their respective owners and those may be shipped under a different license.