Home - bali-nebula/go-component-framework GitHub Wiki
⚠️ This project is still under development and is for reference purposes only. If you are interested in this project or have suggestions on how to improve it feel free to contact us at [email protected].
Welcome
The Go Component Framework project provides the foundation for the Bali Nebula™ cloud-based operating system. It provides a rich set of components that can be used to construct abstract syntax trees (ASTs) from documents containing Bali Document Notation™ ("Bali" for short). The syntax trees can then be processed by agents like compilers, interpreters and formatters for different document types (Bali, HTML, JSON, XML, etc.)
Documents containing Bali can be compiled and executed by the Bali Nebula™ which resides in a secure, highly scaleable cloud environment.
An Example Document
To whet your appetite, here is a short example document that demonstrates the use of some of the more common component types available in the framework:
[
$transactionId: #LYZ6PJ9GBABSF18MQMBSJDV7KAPV4MS7
$timestamp: <2017-12-30T17:38:35.726>(
$city: $Madrid
$country: $Spain
)
$consumer: [
$accountId: #SFNYCS6WTNCAVQ43DDS9HQJQX2A1XAPZ
$email: <mailto:[email protected]>
]
$merchant: [
$accountId: #GYR0D0N7D7RGLAMM50TA7YYP9TRCYFF0
$name: "Cool Deals R Us"
]
$items: [
[
$name: "Hover Board"
$version: v2.65
$quantity: 1
$price: 142.15($currency: $USD)
]
[
$name: "Hover Battery Packs"
$version: v15.3.7
$quantity: 2
$price: 16.75($currency: $USD)
]
]
$tax: 10.77($currency: $EUR)
$total: 184.62($currency: $EUR)
]($type: /acme/accounting/Transaction/v3.4)
In Summary
Bali Document Notation™ is a bit like JSON on steroids. It supports a much richer set of primitive element and collection types (over two dozen types in all) compared with JSON's five total types. Also, just as JavaScript extends JSON to support functions, the Bali Document Notation™ provides a rich set of procedural constructs that make managing the components in the cloud simple and secure.
To dive in deeper on the parts of the project that interest you most, click on links listed in the side bar in the upper right corner ↗️ of this page.