Schale: a subprocess interface for Scala. Easy process creation, background process management and simplified process input/output interface!

219 views
Skip to first unread message

Howard Guo

unread,
Aug 9, 2013, 10:32:54 PM8/9/13
to scala...@googlegroups.com
Hello Scala Users!

Let me present to you a project I have been working on recently: Schale is a subprocess interface for Scala. Make all your system programs easily available to Scala, call those programs and interact with their input and output!

Subprocess management was traditionally carried out by using `Runtime.getRuntime().exec` series of calls. Although JDK introduced `ProcessBuilder` later on, but process building and IO interactivity could still be cumbersome.

Schale takes advantage of advanced features and syntactic sugar offered by Scala, and brings to you:

  • Easy process creation
  • Background process management
  • Simplified process input/output interface
  • Advanced, interactive, non-blocking process IO
  • Hierarchical process environment (variables, working directory) management


Please share your feedback!

Kind regards,
Howard

Vlad Patryshev

unread,
Aug 10, 2013, 12:49:30 AM8/10/13
to Howard Guo, scala-user
Looks pretty enticing; but do you have any piece of doc comparing it to this:

Thanks,
-Vlad


--
You received this message because you are subscribed to the Google Groups "scala-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-user+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Howard Guo

unread,
Aug 10, 2013, 1:01:02 AM8/10/13
to scala...@googlegroups.com, Howard Guo
Thank you Vlad!

The standard Scala API for process management greatly simplifies process creation and simple IO operations, however:

1. It does not address process environment (working directory and variables) management.
2. It does not support interactive IO.

Schale address #1 by supporting stacked/hierarchical environment variables preparation; it addresses #2 by exposing an Akka Actor for convenient interactive IO without necessity of manual stream management.

Regards,
Howard

Fernando Racca

unread,
Aug 10, 2013, 4:48:48 AM8/10/13
to scala...@googlegroups.com, Howard Guo
It sounds useful. Thanks for sharing!

Fernando

Simon Ochsenreither

unread,
Aug 11, 2013, 4:35:54 AM8/11/13
to scala...@googlegroups.com
Do you use native libraries? Or did you find a different way to work around Java's bugs in Process handling?
(See http://blog.headius.com/2013/06/the-pain-of-broken-subprocess.html)

Nicholas Sterling

unread,
May 27, 2014, 3:30:33 AM5/27/14
to scala...@googlegroups.com, guoh...@gmail.com
Hi Howard.  Thanks for sharing Schale with us.

Is it still alive?  Now that 2.11.1 is out I'm looking at moving our project to it, but the repo doesn't appear to have a version of Schale compiled for 2.11.x.  Should we be moving off of it?

Nicholas

Reply all
Reply to author
Forward
0 new messages