Please see the FAQ, TIPS and the docs folder for documentation.
To get started:
Install GNAT, a recent Ada 2012 compiler, see Alire.
On Windows 32 bit or Linux 32 bit if using GNAT GPL prior to 2014 you need to
modify the Makfile ATOMIC_ACCESS=GCC-built-ins
On Windows - if using TDM-GCC replace make below with mingw32-make
Either download and unarchive the stable version of Gnoga from
http://www.gnoga.com or use git to get the latest development version:
git clone git://git.code.sf.net/p/gnoga/code gnoga-code
cd gnoga-code
git checkout dev_2.2
make help # for all options and configuration values
make all
then run the snake demo or tutorials in bin folder. There are additional demos in demo folder.
Open a web browser with URL like: "http://127.0.0.1:8080".
See INSTALL for more information about installing Gnoga as a standard gcc/ada
library if desired.
GNAT Studio is available with 'make studio' which launches GNAT Studio with the
actual values of compiler switches for gnoga.gpr project.
See docs/html/user_guide.html to get started (built with make html-docs).
See docs/html/gnoga_rm/index.html for reference manual (built with make rm-docs).
Gnoga includes a copy of Dmitry A. Kazakov's Simple Components and uses it for http and websockets.
See deps/simple_components/components.htm for details.
It includes an incredible wealth of Ada components you can incorporate in your software freely and
is under the GMGPLv2.
In your own Alire project, add Gnoga dependency:
% alr with gnoga
Then you can import the Ada Gnoga packages in your programs and GPR projects:
with "lib_gnoga.gpr";
Note: Alire will take care of dependencies.
The communication platform between the Ada code and the browser / native
Gnoga.Server.Connection
Gnoga.Server.Connection.Secure - https / SSL Support
Binding to the HTML5 DOM and Browser
Gnoga.Gui.Base (Not per se a binding of Node but takes its place)
Gnoga.Gui.Element, Gnoga.Gui.Element.* (HTML Elements)
Gnoga.Gui.Element.Canvas - HTML 5 Canvas bindings
Gnoga.Gui.Element.SVG - HTML SVG vector graphics
Gnoga.Gui.Element.Multimedia - HTML 5 Audio and Video
Gnoga.Gui.Element.Style - CSS Style blocks
Gnoga.Gui.Window, Gnoga.Gui.Navigator, Gnoga.Gui.Screen,
Gnoga.Gui.Location
Gnoga.Gui.Document
Application start up services
Gnoga.Server.Application.Singleton - Desktop apps
Gnoga.Server.Application.Multi_Connect - Multi user / Web apps
Gnoga higher level containers and GUI widgets
Gnoga.Gui.Views.* - Auto layout of child elements and basis for
custom Gnoga Ada only widgets
Gnoga.Gui.Views.Docker - Dock child views to view sides
Gnoga.Gui.Views.Card - Stacks of views
Gnoga.Gui.Views.Console - Views with auto scroll down
Gnoga.Gui.Views.Grid - Grid of views
Gnoga.Gui.Views.Modal_Dialog - Modal views
Gnoga client side application APIs
Gnoga.Client.Storage - local persistent and session storage on browser
Gnoga.Client.Bind_Page - Bind to all elements on pre-made HTML5 pages
Gnoga database bindings and server side APIs
Gnoga.Server.Database - support for MySQL and SQLite 3
(for ODBC bindings see deps/simple_components)
Gnoga.Server.Model - Active Data models like in Rails
Gnoga.Server.Migrations - Rails like database schema migrations
Gnoga.Server.Template_Parser - Parse files with tokens or Python 2.7
(install libpython27-dev to use the Python parser)
Gnoga development tools
tool/gnoga_make - Generate application scaffolds
and front ends to database tables
Plugin bindings to existing JavaScript libraries
Gnoga.Gui.Plugin.Ace_Editor - Full editor with Ada syntax highlighting
Gnoga.Gui.Plugin.jQuery - jQuery support to access non-Gnoga Elements
Gnoga.Gui.Plugin.jQueryUI - all the jQueryUI Interactions and Effects
Gnoga.Gui.Plugin.jQueryUI.Widgets - the jQueryUI Widgets
Gnoga.Gui.Plugin.Boot_Strap - general binding to Boot Strap
Gnoga.Gui.Plugin.Messages_Boxes - dialog message boxes
Gnoga.Gui.Plugin.MNMenu - menu construction based on list
Gnoga.Gui.Plugin.PIXI - dynamic randering graphic elements such as sprites
Gnoga.Gui.Plugin.JSTree - tree construction based on list
Gnoga.Gui.Plugin.Ace_Editor.Console_IO - console emulation based on ACE
Native Desktop and Mobile Application Support coming:
Gnoga.Server.Application.Gtk_Window - Native GTK front end