Releases: Small-JS/SmallJS
1.8.0
This release is all about enhanced support for Node.js,
that are also usable from the desktop app option NW.js.
Smalltalk library
- Node: File System ('fs') and Path support fully implemented,
with sync and async (promises) operations. - Node: Operating System ('os') support fully implemented.
- Node: Process support fully implemented.
- Node: Environment variable handing now in new class: Environment.
- Node: Renamed classes there where also in Browser,
so desktop frameworks like NW.js can compile them together now.
Examples
- NWjs: Added feature reading a text file using the Node Fs class.
- NWjs: Added example feature using imported npm package 'lpad'.
- NodeGui: NodeGui now works also on MacOS on ARM silicon!
1.7.0
Smalltalk library
- NW.js support: A new framework that lets you develop multi-platform desktop apps with ease!.
The GUI of these apps is made with familiar HTML and CSS.
They take up less memory than using Electron and are less complex to develop. - Core: Added full unit tests for Fetch, consolidated into Core.
- Core: Implemented new JavaScript features since 2022 in classes:
JsObject, String, Error, Array, Map, Set, Float16Array (#46).
Examples
- NW.js: Example app that shows off the new features of the framework.
- AI: Updated UI, current models, including GTP5.
Build
- Contributions: New section for 3rd party contributions,
starting with CounterUsingMithril.
1.6.1
Smalltalk library
- AI: Added support for local AI provider: Ollama!
- AI: Added support for conversation history for all AI providers.
- Browser: 'HtmlSelectElement' fully implemented with unit & GUI tests.
Examples
- AI: Client: Now shows the conversation history
and sends it to AI providers to maintain the conversation context.. - Shop: Shared the source code of these classes between client and server
Person, Product and Order. - Todo: Language selection now uses the nicer looking 'HtmlSelectElement'
- Balls: The balls now have a nice shadow effect :-)
Compiler
- Gives a compile error when local variable duplicates an argument variable
Build
- The bash script 'install.sh' now only installs npm packages for the core.
'installAll.sh' installs npm packages for the examples too.
1.6.0
This release is all about AI support for multiple providers,
with a new example application to show off the new capacilities.
Addtionally, the compiler and build environment where improved.
Have fun!
Smalltalk library
- Node & browser: AI support for OpenAI, Deepseek, Google AI and Anthropic!
With provider-neutral base class functionality.
Examples
- New multi-provider AI example chat app!
- New Counter example app using the Mithril library. (thanks @pdfernhout!)
Compiler
- Inline assignment was fixed, e.g.: '^ ( a := 1 ) + 2' sets a to 1 and returns 3.
Build
- Build, clean and install scripts more modular.
Examples are now excluded from the default build.
Run buildAll.sh to include examples. - Global npm prerequisites removed,
now using local packages and npx. (thanks @pdfernhout!)
1.5.0
This one is all about database support and multi-threading.
Smalltalk library
- Database: SQLite database support added!
- Database: Added async error handling to all supported databases.
- Database: Added support for ST classes: Float, Date, Boolean, Uint8Array.
- Node: Worker threads support added.
Enables development of multi-threaded Node.js apps. - Browser: Web Workers minimal support added, only to support the example app.
Examples
- Web Workers example app added!
- Electron: Split up Node and Browser compilation to prevent class name clashes.
Website
- Added Web Workers example app to this site.
1.4.0
Examples
-
Electron example app added! Electron enables development of multi-platform desktop GUI apps using web technologies.
-
NodeGui example app added! NodeGui enables development of multi-platform desktop GUI apps based on the QT library, that are smaller, faster and easier to make than Electron apps.
Library
-
Minimal Electron support added, only to support the example app.
-
Minimal NodeGui support added, only to support the example app.
If you want more complete support for these frameworks or if you want to contribute,
please open an issue in the SmallJS GitHub repo.
Website
- The Playground now supports multiple statements and local variables. Thanks to "aiksiongkoh" for the suggestion.