Skip to content

A lightweight, minimal-abstraction cross-platform framework

Notifications You must be signed in to change notification settings

prust/glasstack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

glasstack logo

glasstack is a lightweight, zero abstraction cross-platform framework.

The glasstack framework consists of a default set of C libraries and Javascript bindings, so developers can create cross-platform applications using Javascript and/or C.

Transparency

Most programming frameworks abstract low-level implementation details away from application developers. glasstack is different: its aim is to bring together a stack of powerful C libraries and to expose them to Javascript with faithful bindings that do not provide any abstraction other than what the library's API provides.

Application developers are free to write and share abstractions on top of these bindings if they find them helpful, but the low-level details are available and developers are encouraged to become familiar with the low-level APIs and their performance characteristics and to use this knowledge to guide application design.

Libraries

The following libraries are planned:

Users should be able to easily:

  • remove libraries they don't want (by not including the DLL? or not setting compile macro flags?)
  • add alternative libraries (alternative GUI, DB, etc) by dropping in a C library and writing duktape bindings
  • update libraries by dropping in an updated version of the dynamic library (to patch bugs and security vulnerabilities)

Duktape Javascript Engine

glasstack embeds the duktape javascript engine because it is easier to compile and easier to integrate than complex engines like v8, yet it has robust support for ECMAScript 5 and partial support for ECMAScript 6+.

We intentionally opted for a simpler non-JIT engine because we believe that the overall performance and maintainability of the application stack is better when performance-critical routines are written in C and when application developers understand the performance characteristics and tradeoffs of low-level code.

Acknowledgments

  • stack icon (used in the glasstack logo) by Leyla Jacqueline from the Noun Project