Skip to content

tvinko/AlgoniaEngine

Repository files navigation

Algonia

Seamlessly combine different programming languages visually

Table of contents

Introduction

What is Algonia

Algonia is Visual Microservices platform to simplify programming languages interoperability

Hello World

You can read more about it and check Hello World example here.

Architecture

Algonia platform contains three main parts.

Algonia Engine

Independent executing engine capable of hosting different environments and executing code written in different programming languages.
It's a gluing mechanism between your and 3rd party libraries.

This is Algonia's Engine repository.

Algonia VS

Development tool for combining code visually.
You can navigate to Algonia VS repository here.

Algonia Engine Bindings

Algonia Engine is capable to interact and host environments for different programming languages.
However, some languages are required to implement standard interface so that communication with Algonia Engine performs flawlessly. This is one time task per language.

Example of language that didn't need any additional bindings is Python.
Both, Python interpreter environment hosting and system calls are performed inside Algonia Engine.

Example of language that needed additional bindings is .NET Core.
Algonia Engine hosts .NET Core runtime, but tiny wrapper is needed on .NET Core side that offers practically unlimited integration possibilities.

You can see .NET Core bindings here

Build Instructions

Windows

Prerequisites:

  • git
  • Visual Studio Code
  • .NET Core SDK
  • OpenSSL
  • Build Tools For Visual Studio
  1. Install git

  2. Install Visual Studio Code After installation, Visual Studio Code will automatically detect git path. In case that path is not detected and git is installed, set path VS Code manually. Install following extensions

    • C/C++ for Visual Studio Code
    • C# for Visual Studio Code
  3. If you don’t have Visual Studio, install Build Tools for Visual Studio 2019

    • After running installer, select “Visual C++ build tools”
    • Be sure to select “VC++ 2015.3 v14.00 toolset for desktop” (actual version can vary, at the time of writting instructions, VS 2017 was used)
  4. Find “vcvarsall.bat” file which is needed to build C/C++ projects from VSCode. Add directory path to PATH environment variable.
    Typical locations to search are “C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\VC\Auxiliary\Build\”, “C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\”....

  5. Find “cl.exe” file and add directory path to PATH variable. “cl.exe” is tool that controls Microsoft C and C++ compilers and linker.
    Typical locations to search are “C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\VC\Tools\MSVC\14.15.26720\bin\Hostx64\x64\”....

  6. Install OpenSSL. “Win64 OpenSSL v1.0.2o Light” should suffice

  7. Install .NET Core SDK

  8. Create new folder for project. Make sure that path does not contain white spaces (eg C:\Algonia)

  9. Go into newly created folder and clone AlgoniaCsNodes repo. This repo contains .NET Core Elements.
    git clone https://github.com/tvinko/AlgoniaCsNodes.git

  10. Clone AlgoniaEngine repo. This repo contains native Computing Engine and Elements
    git clone https://github.com/tvinko/AlgoniaEngine.git

  11. Create two environment variables:

    • ZENO_ROOT pointing to unmanaged AlgoniaEngine root folder (eg C:\Algonia\AlgoniaEngine)
    • ZENO_PROJ pointing to project folder (eg C:\Algonia\ZenUnmanaged\ZenEngine\project\9024bb0d-137e-4a99-2167-7b5875404b01)

  12. Build projects.
    Open “ZenComplete.code-workspace” in VS Code and press Ctrl+Shift+B to open Build task. Build projects in following order:

    • Native - ZenCommon
    • Native Lib - ZenCoreCLR
    • Native Element - ZenCounter
    • Native Element - ZenSleep
    • Native Element - ZenStart
    • Native Element -ZenDebugWrapper
    • Native - ZenEngine

Linux

Comming soon...

MacOS

Comming soon...