Skip to content
Go to file


Failed to load latest commit information.
Latest commit message
Commit time

What is Gastona

Gastona is a scripting language to make applications easily. Among other features it has out of the box things like

  • rapid GUI building
  • SQL integrated
  • scanning directories and parsing files
  • powerful text generator
  • communications using UDP and an amazing HTTP server integrated

All these are quite powerful tools for building application and using them with Gastona is really straightforward.

It is a GPLv3 open source project implemented in java in two variants

  • Desktop/PC (gastona.jar) that runs in Windows, Linux, Raspberry Pi and Mac OSX
  • Android App (gastona.apk) for android smart phones and tablets

Both use exactly the same script language so it is possible to develop an application and run it in all of these systems.

Is Gastona different ?

Yes, it is. It has no similarities to any programming language. The main goal is precisely to save programming effort as much as possible.

This can be achieved with a very pragmatic approach, simplification if you want, like to say "a button is a button" etc. And also very important, using an unsophisticated but flexible enough data structure for all purposes of the language.

The best way to learn it is to run the desktop application gastona.jar which comes with a complete documentation of the language, widgets and commands. Almost every element in the documentation has one or several related sample scripts that can be modified and run immediately.

Getting Gastona

This Github repository contains the source code for both Desktop (or PC) and Android. Actually many sources are shared by the two variants, specifically all what is inside the folder "base".

The App for Android is available at the Google market for approximately 1 Euro which represents a support for the project. It is also available as apk to be installed manually.

Binaries for both desktop and android can be found at

Small demo

Probably the best introduction even before a tutorial and start learning rules is to see a quick demo to have the feeling of how the things are done and what you can get from this language.

The problem

Suppose we want

  • a list of contacts with some data
  • show more information about the contact on selecting an entry
  • do some action over the selected entry when a button is pressed

we have expressed the requirements using few words, would not be nice to code it in few words as well?

The coding

We separate GUI from logic and also from data. The first two are personalized: javaj is the responsible guy for the GUI and listix for the logic. Both do their job according to variables that we set to them. In this case the script could be


     <layout of main>
        EVALAYOUT, 4, 4, 3, 3

                 , X
                 , lPeople
              X  , iPeople
                 , bAction
              X  , oSalida


     <iPeople visibleColumns> name
        name    , address    , phone
        Marvin  , Bonasera   , 888
        Salma   , Hauptstr   , 555


     <-- iPeople>
        //Selected @<iPeople> who lives in @<iPeople selected.address>
        //Call now ?

     <-- bAction>
        //Ok calling @<iPeople> ...

executing this script with gastona.jar will result in the desktop application


the script would also work on Android, but if the device is a phone better use this code for the action

     <-- bAction>
        CHECK, VAR, iPeople, BOX, I, No entry selected!
        INTENT, DIAL, tel:@<iPeople>

and this would be the result in Android


What about the web?

I start saying there are two variants of gastona, well a third variant is growing right now and it is a javascript library.

If the scripting language turns out to be useful and convenient, could we use it also for rendering our application in a browser?

The answer is yes, jGastona.js and the family Eva.js, EvaLayout.js and LayoutManager.js can do that. These are pure javascript libraries that implement Gastona for a browser. Not thought to be one to one compatible with the java variants, which is not possible and also not needed, but just as an alternative for developing browser applications.

It is possible to use ajax methods with jGastona to do dynamic web applications using an http server, for example the Gastona mini http server MICOHTTP. But now for this demo let's use following static html

  <script src="jGastonaEva-min.js"> </script>
  <script id="mainJast" type="jast">

           <layout of main>
              EVALAYOUT, 4, 4, 3, 3

                       , X
                       , lPeople
                    X  , iPeople
                       , bAction


              name    , address    , phone
              Marvin  , Bonasera   , 888
              Salma   , Hauptstr   , 555


           <-- iPeople>
              //alert ("You have selected " + jgas.getData ('iPeople'));

           <-- bAction>
              //alert ("Calling " + jgas.getData ('iPeople'));


     var jast = jGastona (evaFileStr2obj (document.getElementById ("mainJast").text));
     jast.start ();


having jGastonaEva-min.js in the same directory the result in the browser is


Note that we haven't specify any html element for the body, jGastona will create all them on the fly according to the given script.


Pocket app maker, easy GUI/SQL/HTTP development for Desktop Win/Linux/RaspPi and Android




No releases published
You can’t perform that action at this time.