bmc / scalasti   3.0.1

Website GitHub

A Scala interface to the Java StringTemplate library

Scala versions: 2.12 2.11 2.10

Scalasti: A Scala interface to the Java StringTemplate Library

Build Status Maven Central


This is Scalasti, a Scala interface to the StringTemplate Java template library.

Scalasti provides a (useful) subset of the StringTemplate API's features, with a more Scala-friendly syntax.

Scalasti's additional features include:

  • Immutability. As of version 3.0.0, Scalasti objects are immutable, unlike the StringTemplate objects. Modifier methods always create new objects; they never modify objects in place. Immutability is more functional and more idiomatic to Scala, and an immutable Scalasti API was long overdue.

  • Error-handling. Where possible, Scalasti propagates errors via scala.util.Try objects, instead of via a StringTemplate listener. This approach is also more idiomatic to Scala.

  • Scala object support. Scalasti supports Scala objects, meaning you don't have to use @BeanProperty on your Scala classes before you can pass them into a template. This feature also allows you to use instances of third-party Scala classes directly with Scalasti.

  • Stronger type safety. You should never need to cast objects you receive from the Scalast API.

  • Mapped aggregates provide the ability to add maps (which can be nested) as template attributes, which you can then deference within the template via dot-notation.

For complete information, see the Scalasti home page.

Copyright and license

Scalasti is copyright © 2010-2018 Brian M. Clapper and is released under a BSD license. See the accompanying license file for details.