Skip to content
goFrendiAsgard edited this page Mar 28, 2018 · 9 revisions

Chimera-Framework is a language agnostic framework for standalone and distributed computing. Chimera-Framework is written in Node.Js. As a component based software engineering framework, Chimera-Framework allows you to orchestrate several components to achieve a greater goal. The components can be written in any programming language. Executable binary file can also act as component.

You can use CHIML in order to orchestrate the process. CHIML is a superset of YAML which is also a superset of JSON.

Why Chimera-Framework?

  • Programming Language Diversity: Some programming language are good at machine learning. Some others are good at statistics or web development. Creating a website with some machine-learning/statistics feature by using only either R or PHP will lead you to a soon-to-be-regret decision. Chimera-Framework solve this by let you choose the best programming language for each task.

  • CLI Support in Most Programming Language: Most programming language supporting command line interface. So, rather than inventing a new bridging interface, Chimera-Framework simply use these already-popular-and-common interfaces (like JSON and CLI). Thus, you don't need to learn something new in order to write your components.

  • Technology Migration in Tight Deadline is Painful: In software development, there is one single hell named vendor-lock. It is a situation when you have build a software that depend on a particular set of technology. And to make it worse, some frameworks (or even programming languages) can suddenly fade away from the market (like netware and symbian). Chimera-Framework help you prevent this by let you develop component-based software. So, if your components suddenly doesn't work due to deprecation or anything, you can just simply drop in a new replacement without any need to rewrite the entire software.

Dependencies

  • Node.Js
  • npm
  • Interpreters/Compilers, depend on programming language you use.

Installation

  • Using npm:

    This method is recommended for normal users:

    npm install --global chimera-framework
  • Using git:

    This method is recommended for framework testers/developers/contributors:

    npm install --global standard nyc newman
    git clone git@github.com:goFrendiAsgard/chimera-framework.git
    cd chimera-framework
    npm install --global
    npm link

Upgrade

  • Using npm:

    npm update --global chimera-framework
    
  • Using git:

    cd chimera-framework
    git pull origin master
    npm install --global
    npm link

Testing

  • Install mocha and chain by invoking npm install mocha chai
  • Install g++ by invoking apt-get install g++
  • Install mongodb by invoking apt-get install mongodb and run the service by infoking sudo service mongodb start
  • Perform npm test

Getting Started

The brief introduction of Chimera-Framework usage is presented here

Chimera-Framework can be used for

In order to use Chimera-Framework, you need to write a CHIML script. CHIML is a simple superset of YAML. The sepecification of CHIML script is presented here

API

Chimera-Framework has several API. The API are accessible from any Node.Js programs. To use the API, you need to add this to your Node.Js application:

const chimera = require('chimera-framework')

The list of available API is available here

Content Management System (CMS)

Sometime you need a more sophisticated web application. Something similar to wordpress or drupal. You need your users to be able to write their own content in a simple way. In that case, you can cast

chimera-init-cms <your-project-name>

The command will let you have a CMS boilerplate, which is a Chimera-Framework web application with a lot of additional features like a CCK (Content Construction Kit)

More information about CMS features can be found here

FAQ (Frequently Asked Question)

Have some questions? Open an issue or click the FAQ.

Citation

If you publish any article related to Chimera-Framework, please cite our paper on http://ieeexplore.ieee.org/document/8320654/