Sinh hoat CLB tin hoc Komaba lan 1 - Phat bieu cua Hung
Xitrum @ Scala Conference in Japan 2013
1. Xitrum - a Scala framework inspired by Rails
Slides are in English,
but because there are many Japanese Scala Conference in Japan 2013
in the audience, Ngoc ( ゴック )
I will try talk in Japanese
2. Self introduction
●
Ngoc ( ゴック ), from Vietnam
● Working in Tokyo, at Mobilus:
http://mobilus.co.jp
● Creating chat systems for smartphones using
Scala
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 don't need a separate server, e.g. Redis, memcached
● Based on Netty, Hazelcast, and Akka:
- Netty => async IO
- Hazelcast => clustered data
(may be removed when Akka's 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
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. 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:
http://ngocdaothanh.github.com/xitrum/
7. Demo
● Online demo:
http://ngocdaothanh.github.com/xitrum/
● Source code:
https://github.com/ngocdaothanh/xitrum-demos
I will show you:
● Routes collecting
● Clustering