<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>XYoshiki (张辉)</title>
    <link>https://ruby-china.org/XYoshiki</link>
    <description>Ruby 还能走多远 ...</description>
    <language>en-us</language>
    <item>
      <title>前阵子自己写的一个 Ruby Web 框架 Swee 玩玩，分享一下</title>
      <description>&lt;p&gt;项目地址：
&lt;a href="https://github.com/yoshikizh/swee" rel="nofollow" target="_blank"&gt;https://github.com/yoshikizh/swee&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;底层接受 http 请求 基于 EventMachine 的 event loop&lt;/li&gt;
&lt;li&gt;内部一些特性都是基于 event loop 如：服务器重启，以及代码 reload 等特性&lt;/li&gt;
&lt;li&gt;处理请求并包装为 request 结构暂时使用的是 Thin 的 http_parser, 所以暂时依赖 thin&lt;/li&gt;
&lt;li&gt;应用层轻量级包装 实现 route 和 controller 目前支持 rails 的一些特性&lt;/li&gt;
&lt;li&gt;使用部分 rack 的 middlewaves 和 一些自己实现的 middlewaves，所以暂时还需要 rack 的依赖&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;使用方法：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;swee
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;用以下代码创建一个新项目 跟 rails 一样，创建完毕会自动创建好 初始 controller ,action，和 启动 server&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;swee new myproj
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;PS&lt;/p&gt;

&lt;p&gt;对 model 层的实现想法较多，所以暂时没有 model 层，大家可以自己先用 AR 或者其他 第三方 modle&lt;/p&gt;

&lt;p&gt;由于 SWEE 全部的处理，包括 接受请求 到 响应给浏览器 全部在 EM defer 中执行，所以并发应该比较好&lt;/p&gt;

&lt;p&gt;后续准备把 thin 的依赖 和 rack 的依赖拿掉，完完全全变成自己的一套 web 框架，主要是 HTTP 解析自己实现一下，还有几个必备的 middlewaves 实现一下&lt;/p&gt;

&lt;p&gt;最后&lt;/p&gt;

&lt;p&gt;由于版本还比较初级，供大家学习研究&lt;/p&gt;</description>
      <author>XYoshiki</author>
      <pubDate>Thu, 16 Apr 2015 10:42:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/25164</link>
      <guid>https://ruby-china.org/topics/25164</guid>
    </item>
  </channel>
</rss>
