appcelerator-archive / kroll Goto Github PK
View Code? Open in Web Editor NEWAppcelerator Kroll
Home Page: http://www.appcelerator.org
License: Other
Appcelerator Kroll
Home Page: http://www.appcelerator.org
License: Other
> WARNING: this project is no longer maintained Kroll is the pyrometallurgical industrial process used to produce titanium. It's a microkernel. _ _ _ | | ___ __ ___ | | | | |/ / '__/ _ \| | | | <| | | (_) | | | |_|\_\_| \___/|_|_| Kroll is a compact microkernel written in C++ for running pluggable modules. Kroll supports a cross-language, cross-platform "binding" and invocation framework which supports mixing and matching code within the Kroll kernel. Yes, that means you can pass a Javascript object to a Python function and stuff like that. It's just that bad ass ... admit it. Currently, Kroll supports the following languages: - C/C++ - Python - Ruby - PHP - JavaScript However, any C/C++ exposed language which supports embedding most likely can be supported with not much effort. These languages are on the target list to be added soon: - Lua (already in progress) - Falcon (interest from Falcon community indicated) - C# (maybe via Mono) - Java The Module API -------------- The Module API is rather simple but powerful. You can write modules in C++ or even in the supported languages like Python. The module can really do anything it wants once it's loaded. The Binding API --------------- The Module communicates to other modules through "binding". Binding is the process of either adding values (primitive, objects, functions etc) to the Kroll runtime or retrieving them. There are also a small number of other utility functions like logging etc that are exposed by the "API module". The binding implementation for each language knows how to box and unbox values back and forth from the Kroll runtime and the native language runtime. This is the key part of the magic of Kroll. Once bound, you can invoke a function from Ruby which might take a Python function as a reference and return a Javascript object. Kroll ----- Kroll itself is the microkernel and set of base modules. As a standalone, it's really not that useful (yet). The power of Kroll is when it's used by another application to expose higher level functionality. Currently, Kroll is the core of the Titanium product. In this case, Titanium provides a set of additional modules on top of the base modules such as the windowing environment. <http://www.appcelerator.com> Build ----- Here are some build specific notes for each platform. Win32: ====== You will need Visual Studio 2005 + Service Pack 1 for the build to work. OSX: ==== You will need universal version of installed libraries to build. You can get the universal versions by running: > sudo port deactivate libxml2 > sudo port deactivate libiconv > sudo port deactivate zlib This should deactivate and then you can run: > sudo port install zlib +universal > sudo port install libiconv +universal > sudo port install libxml2 +universal This will install the universal versions of these libraries. Linux ===== You'll need to base libraries to build. For unbuntu, sudo apt-get install the following: > build-essential > ruby > rubygems > libzip-ruby > scons > libxml2-dev > libgtk2.0-dev > python-dev > ruby-dev You'll need git if you planning on committing: sudo apt-get install git-core ------------- Legal Stuff ------------- Copyright (C) 2008-2009 by Appcelerator, Inc. All Rights Reserved. For more information, please visit <http://license.appcelerator.org>. Appcelerator, Titanium and logos are trademark of Appcelerator, Inc. Please see the file named LICENSE for the full license.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.