Roughly three weeks after the last release, today I’m happy to announce Skookum JS 0.3.0!
What is Sookum JS?
Skookum JS, or sjs for short, is a JavaScript runtime focused on providing comprehensive POSIX APIs.
The motivation for this project comes from answering the question “how would a JavaScript runtime look like if there were no browsers?”.
This new release contains a few new modules: random, system (now non-builtin), process, pwd and uuid.
I’m specially happy about two of those modules: random and process, so let’s explore them a bit:
random
The random module implements a PRNG based on the well known Mersenne Twister PRNG. It also implements a CSPRNG by reading from the best random source available on the system: getrandom on Linux and arc4random_buf on OSX, falling back to reading from /dev/urandom.
If you are an expert in this field and have some comments about the implementation, please reach out!
process
The process module is by far what took the longest to complete for this release. It implements just two functions: daemonize and spawn, to daemonize the current process and to spawn new child processes respectively.
The challenge was that in order to implement those in JavaScript I had to add tons of new APIs to the os module (plus tests and documentation!). I can’t be happier about the result!
There are tons of other additions abd bugfixes, check the full changelog for details and the documentation for all APIs.
Last, I found some inspiration and made a new logo, what do you think?
Enjoy!