Dependencies
============
Dependency libraries
--------------------
Xitrum includes some libraries. In your Xitrum project, you can use them
directly if you want.
.. image:: ../img/deps.png
Main dependencies:
* `Scala `_:
Xitrum is written in Scala language.
* `Netty `_:
For async HTTP(S) server. Many features in Xitrum are based on those in Netty,
like WebSocket and zero copy file serving.
* `Akka `_:
For SockJS. Akka depends on `Typesafe Config `_,
which is also used by Xitrum.
Other dependencies:
* `Commons Lang `_:
For escaping JSON data.
* `Glokka `_:
For clustering SockJS actors.
* `JSON4S `_:
For parsing and generating JSON data. JSON4S depends on
`Paranamer `_.
* `Rhino `_:
For Scalate to compile CoffeeScript to JavaScript.
* `Sclasner `_:
For scanning HTTP routes in action classes in .class and .jar files.
* `Scaposer `_:
For i18n.
* `Twitter Chill `_:
For serializing and deserializing cookies and sessions.
Chill is based on `Kryo `_.
* `SLF4S `_, `Logback `_:
For logging.
`Xitrum new project skeleton `_
includes these tools:
* `scala-xgettext `_:
For :doc:`extracting i18n strings ` from your .scala files when you compile them.
* `xitrum-package `_:
For :doc:`packaging your project `, ready to deploy to production server.
* `Scalive `_:
For connecting a Scala console to a running JVM process for live debugging.
Related projects
----------------
Demos:
* `xitrum-new `_:
Xitrum new project skeleton.
* `xitrum-demos `_:
Demos features in Xitrum.
* `xitrum-placeholder `_:
Demos APIs that return images.
* `comy `_:
Demos a simple URL shortening service.
* `xitrum-multimodule-demo `_:
Example about creating multimodule `SBT `_ project.
Plugins:
* `xitrum-scalate `_:
This is the default template engine in Xitrum, preconfigured in
`Xitrum new project skeleton `_.
You can replace it with other template engines, or totally remove it if your
project doesn't need any template engine. It depends on
`Scalate `_ and
`Scalamd `_.
* `xitrum-hazelcast `_:
For clustering cache and server side sessions.
* `xitrum-ko `_:
Provides some convenient helpers for `Knockoutjs `_.
Other projects:
* `xitrum-doc `_:
Source code of the `Xitrum Guide `_.
* `xitrum-hp `_:
Source code of the `Xitrum Homepage `_.