【学渣笔记】Xitrum Scala Web Framework Guide
商高谊
2023-12-01
介绍:
+--------------------+
| Clients | ->客户端
+--------------------+
|
+--------------------+
| Netty | ->NIO框架
+--------------------+
| Xitrum | ->Scala web 框架
| +----------------+ |
| | HTTP(S) Server | | ->网页服务器
| |---------------- | |
| | Web framework | | <- Akka, Hazelcast -> Other instances
| +----------------+ |
+--------------------+
| Your app | ->你的app
+--------------------+
Xitrum是基于Netty和Akka的异步、集群的scala web框架和和网页服务器。
Xitrum是一个令人印象深刻的作品,大概是最完整易用的scala框架了吧。它是一个真正的满堆栈web框架,包含了很多基础,例如像ETags的wtf-am-I-on-the-moon,静态文件缓存标识,和自动解压缩程序,内嵌入JSON转换,拦截机制,request/session/cookie/flash范围,完整的校验机制,内嵌缓存层等等。
特色:
线程安全。在scala的思想中,所有的API都试图实现线程安全。
异步。在NETTY的思想中,你的请求操作并不会立即响应,他支持轮询,分块响应,WebSocket,SockJS。
基于Netty的内嵌HTTP和HTTPS网页服务器。Xitrum的静态文件可以提供像Nginx一样快的服务。
大量的客户端和服务端缓存可以提供快速的响应。在web服务器层,小文件是被缓存在内存中,大文件是用NIO的零拷贝。在web层,你可以自己在Rails style中声明page,action,和对象缓存,所有谷歌的最好的方法像GET都可以在客户端缓存中应用。用静态文件支持范围请求,为只能手机提供视频文件,还可以上传和下载。
支持CORS。
Routes可以在JAX-RS 和 Rails Engines中自动收集。
Classes 和 routes 在开发模块中可以被自动加载。
视图可以在单独的Salate template文件或者XML中写入,他们都是线程安全的。
Sessions可以被保存在cookies或Hazelcast中。
JQuery校验被应用于浏览器端和服务器端。
还支持i18n.
Xitrum想要集成Scalatra和Lift。