Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Xitrum @ Scala Conference in Japan 2013


Published on

  • Be the first to comment

Xitrum @ Scala Conference in Japan 2013

  1. 1. Xitrum - a Scala framework inspired by RailsSlides are in English,but because there are many Japanese Scala Conference in Japan 2013in the audience, Ngoc ( ゴック )I will try talk in Japanese
  2. 2. Self introduction● Ngoc ( ゴック ), from Vietnam● Working in Tokyo, at Mobilus:● Creating chat systems for smartphones using Scala
  3. 3. What is Xitrum● Scala web framework + standalone HTTP(S) server● Inspired by Rails, not a Rails clone● Main features: async and clustered● Clustering is in-process: - Very fast - You dont need a separate server, e.g. Redis, memcached● Based on Netty, Hazelcast, and Akka: - Netty => async IO - Hazelcast => clustered data (may be removed when Akkas clustering feature is mature) - Akka => remote code (not clustered code yet)● Clustering feature in Akka 2.1 is still experimental, hope Akka 2.2 will be released soon
  4. 4. One instance ClusterAkka
  5. 5. Why I created Xitrum● I came to Scala in 2010, from Ruby● In 2010, Play did not support Scala● There was Scalatra and Lift, but: - Scalatra did not have many features - Lift was not easy to use (from a Rubyist perspective) => I decided to create something in between: - More featureful than Scalatra - Easier to use than Lift Scalatra <---- Xitrum ----> Lift● I have used used Xitrum in most of my projects: chat systems, API server for smartphones, realtime web sites etc.
  6. 6. Xitrum features● Async and clustered● WebSocket, SockJS (like Socket.IO, but easier)● Routes are collected automatically, like JAX-RS● Scalate template engine● i18n based on GNU gettext● Standalone HTTP(S) server: serves static files very fast - Small files are cached in memory - Big files are sent using NIO’s zero copy● Many more, see:
  7. 7. Demo● Online demo:● Source code: I will show you:● Routes collecting● Clustering