What is Going Nuts about?
Gonuts is a software development system utilizing the Squirrel Language (see http://www.squirrel-lang.org )
Squirrel itself is a great language with c-like syntax, providing optional OOP like classes and a Lua-like memory management ("nearly everything is a hash table").
It processes script files called nuts (file extension .nut), hence the name "Going Nuts", but unfortunately has very limited "practical" functionality (I/O is limited to file operations plus a print directive, for example) out of the box, because it is meant to be embedded into an application.
Gonuts fills the gap and provides more of a "general purpose language" environment for developers.
The gonuts binary executable embeds Squirrel and numerous extensions turning it into a powerful source and byte code interpreter with an emphasis on embedded systems, M2M/IoT and creating server/client cores and apps.
Currently it is available for Win32, Linux AMD64 and Linux ARM32, with a basic footprint of about 1.5MB (plus about 512K general RAM usage, actual apps adding up).
It runs on a server or PC as well as on BeagleBone Black, Raspberry Pi and the like, providing a very minimal Linux (or Win) environment is present.
Since a compiler is embedded it runs source code (.nut) as well as precompiled (.cnut) Squirrel code, plus it is able to execute packed and encrypted code from single files or archives (.pnut files).
An extensive tool library is available, among others allowing licensed versions to create encrypted files/archives and even embed code into a single executable binary.
Best of all: The basic version is free (as in "free beer")
Main features:
native TCP/UDP socket support
native Event system
native AES and ECC Cryptology
native Z-Compression/Decompression
native XML and JSON processing
native proprietary data protocol, greatily easing transmission/exchange of objects for threads, hosts or data storage
Threading (For those who know Squirrel: These are real OS threads, which is quite a big deal...)
Sophisicated thread local arena memory management
Remote debugging
Archives/libraries and modules extending functionality and hardware access, for example to access databases
Option to create and/or run closed source squirrel code
Open Source C++ API for creating modules
Class instance constructor separation (automatically call base class constructors) and even experimental destructors( which is the big deal about Squirrel. However, use with care!)
Some words about notations:
Squirrel - the Squirrel programming language
gonuts - the binary executable
nuts - a nut is a plain text Squirrel source file
cnuts - compiled, compressed and/or (en)crypted nuts
pnuts - Archives/collections of nuts and cnuts in a single file
den -a dynamic module (.so/dll) providing additional functionality, for example database access, CAN drivers, Graphics adapters or any other extension
amalgamation - a single-file executable application created using gonuts
drey - the upcoming integrated development environment (IDE)
See what gonuts is capable of
Squirrel itself is a great language with c-like syntax, providing optional OOP like classes and a Lua-like memory management ("nearly everything is a hash table").
It processes script files called nuts (file extension .nut), hence the name "Going Nuts", but unfortunately has very limited "practical" functionality (I/O is limited to file operations plus a print directive, for example) out of the box, because it is meant to be embedded into an application.
Gonuts fills the gap and provides more of a "general purpose language" environment for developers.
The gonuts binary executable embeds Squirrel and numerous extensions turning it into a powerful source and byte code interpreter with an emphasis on embedded systems, M2M/IoT and creating server/client cores and apps.
Currently it is available for Win32, Linux AMD64 and Linux ARM32, with a basic footprint of about 1.5MB (plus about 512K general RAM usage, actual apps adding up).
It runs on a server or PC as well as on BeagleBone Black, Raspberry Pi and the like, providing a very minimal Linux (or Win) environment is present.
Since a compiler is embedded it runs source code (.nut) as well as precompiled (.cnut) Squirrel code, plus it is able to execute packed and encrypted code from single files or archives (.pnut files).
An extensive tool library is available, among others allowing licensed versions to create encrypted files/archives and even embed code into a single executable binary.
Best of all: The basic version is free (as in "free beer")
Main features:
native TCP/UDP socket support
native Event system
native AES and ECC Cryptology
native Z-Compression/Decompression
native XML and JSON processing
native proprietary data protocol, greatily easing transmission/exchange of objects for threads, hosts or data storage
Threading (For those who know Squirrel: These are real OS threads, which is quite a big deal...)
Sophisicated thread local arena memory management
Remote debugging
Archives/libraries and modules extending functionality and hardware access, for example to access databases
Option to create and/or run closed source squirrel code
Open Source C++ API for creating modules
Class instance constructor separation (automatically call base class constructors) and even experimental destructors( which is the big deal about Squirrel. However, use with care!)
Some words about notations:
Squirrel - the Squirrel programming language
gonuts - the binary executable
nuts - a nut is a plain text Squirrel source file
cnuts - compiled, compressed and/or (en)crypted nuts
pnuts - Archives/collections of nuts and cnuts in a single file
den -a dynamic module (.so/dll) providing additional functionality, for example database access, CAN drivers, Graphics adapters or any other extension
amalgamation - a single-file executable application created using gonuts
drey - the upcoming integrated development environment (IDE)
See what gonuts is capable of