Hi All,
I’m really happy to announce the 1.3.0 release after many months of development! the release is available for download and should be available through other channels soon. Check
http://www.crashub.org .
The development of CRaSH does not follow a precise roadmap per se, the development of 1.3 started about a year ago with the idea to have a more powerful scripting capabilities. So the main idea of 1.3 is giving to CRaSH the capability of being polyglot and decoupling of CRasH from Groovy language. That being said I will try to sum up what is new and noteworthy in CRaSH 1.3:
1/ polyglot-able : CRaSH can now integrate more languages both for the Repl and the commands. In practice this is not yet much exploited due to a lack of time and contributions.
2/ Object pipeline, this was in CRaSH since 1.1 but not advertised much because of the lack of maturity, fully supported with CRaSH 1.3. Each command can focus on a single business task and they can be then combined to to create powerful constructs:
# the classic example
% thread ls | thread dump | mail send -s “the thread dump”
ad...@foo.org
2/ Groovy Repl : one of the best feature of this release, allows you to write Groovy code mixed with commands, for example:
# executes 10 times the env command, sleep one second.
% (1..10).each { env(); Thread.sleep(1000); }
# command pipeline can be created and combined with Groovy closures making it very powerful
% (
thread.ls | { thread -> [id:
thread.id,name:
thread.name] } | mail.send { s=“the thread dump”; “
ad...@foo.org" } )()
3/ Java commands : you can now write commands in java languages. Useful for runtimes that don’t want to embed or deal with Groovy.
4/ New web connector with crash.js built on top of websocket (powering the demo
http://try.crashub.org)
5/ Mount point configuration : a very recent feature giving the ability to configure conf and command paths.
6/ Key events : a command can trivially receive keystroke events if it desire (this is how the new less command is implemented)
Beside that CRaSH ecosystem has also grown reaching more users:
- A few open source projects embed it:
http://www.crashub.org/embedded.html
- Several package managers integrate it:
http://www.crashub.org/managers.html)
cheers
Julien Viet
julienviet.com