TorqueBox

TorqueBox是一种新型的Ruby应用程序平台,支持Ruby on Rails和Sinatra等流行技术,同时扩展了Ruby应用程序的占用空间,包括对消息传递,调度,缓存和守护进程等服务的内置支持。(TorqueBox is a new kind of Ruby application platform that supports popular technologies such as Ruby on Rails and Sinatra, while extending the footprint of Ruby applications to include built-in support for services such as messaging, scheduling, caching, and daemons.)

  • 所有者: torquebox/torquebox
  • 平台: Linux, Mac, Windows
  • 許可證: Apache License 2.0
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

不再维护

不再积极开发或维护TorqueBox项目。不要将它用于开发或生产用途,除非您愿意并且能够解决问题。

TorqueBox

这是TorqueBox 4,代表了之前TorqueBox版本方向的重大变化。 我们正在转向一个轻量级的嵌入式模型,该模型在没有任何Java应用程序服务器的情况下运行,而牺牲了一些更具企业性的功能。 对于想要在Java应用程序服务器中运行或需要这些企业功能的用户,我们将提供一种方法来获取TorqueBox应用程序并在未经修改的WildFly安装上运行它。

文档

我们提供各种指南来帮助安装,迁移, TorqueBox 4的使用和部署。

运行TorqueBox的快速入门

要求

TorqueBox需要JRuby 1.7.x(1.9或2.0模式)或JRuby 9.x.x. 在Java 7+上运行。该代码仅在JRuby 1.7.6和 更高,但应该适用于早期版本。

安装

阅读 安装指南以了解安装信息 的信息。

直接运行

从Rack应用程序的根目录中:

 torquebox run

Rails

确保 torquebox 在 Gemfile 中,然后:

  rails s torquebox

Rack

  rackup -s torquebox

动机

我们想要更小、更模块化的TorqueBox,更容易获得 开始于,嵌入,并允许用户带来额外的 功能根据需要。我们的动机和社区的更多细节反馈在torquebox用户邮件列表中的一个 电子邮件主题 中表示。

技术

TorqueBox在JRuby上运行,并且位于一个新的轻量级、可插拔的顶部, 代号为 WunderBoss 的多语言服务器(至少对于现在)。 TorqueBox的所有新功能都将在中实现,然后WunderBoss通过TorqueBox项目中的Ruby API公开。这个通过创建特定于语言的API包装器让其他语言的其他项目重用相同的功能 。 WunderBoss的网页部分使用 JBoss Undertow , 也是 WildFly 中使用的同一个Web服务器(后继者) 到JBoss Application Server)。 我们的目标是重用与WildFly相同的底层组件 除了之外,TorqueBox应用程序还可以在WildFly之上运行 在没有它的情况下运行,为用户提供一个完整的Java之间的选项 应用程序服务器和非常轻量级的最小服务器。

当前状态

现在TorqueBox 4提供了高性能的Rack实现 用于Web应用程序和用于消息传递,缓存和的基本API 预定的工作。 Rack支持被认为是生产就绪的,但是 消息传递,缓存和调度实现仍然存在 更多的流量。

路线图

我们正在开发TorqueBox 4,同时还要维护TorqueBox 3和 我们预计在TorqueBox 4出现alpha之前需要一些时间 和贝塔斯,并进入最终版本。

概覽

名稱與所有者torquebox/torquebox
主編程語言Ruby
編程語言Ruby (語言數: 5)
平台Linux, Mac, Windows
許可證Apache License 2.0
發布數57
最新版本名稱3.2.0 (發布於 2016-09-16 10:15:21)
第一版名稱1.0.0.Beta10 (發布於 2009-05-15 11:01:32)
創建於2009-05-08 18:16:50
推送於2018-08-13 19:54:50
最后一次提交2018-08-13 15:54:50
星數470
關注者數30
派生數132
提交數5.1k
已啟用問題?
問題數75
打開的問題數0
拉請求數124
打開的拉請求數0
關閉的拉請求數70
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

No Longer Maintained

The TorqueBox project is no longer actively developed nor maintained. Do not use it for development or production usage unless you are willing and able to fix issues as they come up.

TorqueBox

This is TorqueBox 4 and represents a substantial change in direction
from previous TorqueBox releases. We're moving to a lightweight,
embedded model that runs without any Java application server, at the
expense of a few of the more enterprisy features. For users that want
to run in a Java application server or need those enterprisy features,
we'll provide a way to take your TorqueBox application and run it
unmodified on a stock WildFly installation.

Documentation

We have various guides available to help with installation, migration,
usage, and deployment of TorqueBox 4.

Quickstart for running TorqueBox

Requirements

TorqueBox requires JRuby 1.7.x (in 1.9 or 2.0 mode) or JRuby 9.x.x
running on Java 7+. The code has only been tested on JRuby 1.7.6 and
higher but should work on earlier versions.

Installation

Read the Installation Guide for installation
details.

Running directly

From inside your Rack application's root directory:

torquebox run

Rails

Ensure torquebox is in your Gemfile, then:

rails s torquebox

Rack

rackup -s torquebox

Motivation

We want a smaller, more modular TorqueBox that is easier to get
started with, embeddable, and lets users bring in additional
functionality as-needed. More details of our motivation and community
feedback are expressed in an email thread from the
torquebox-user mailing list.

Technology

TorqueBox runs on JRuby and sits on top of a new lightweight, pluggable,
polyglot server codenamed WunderBoss (at least for
now). All the new features of TorqueBox will be implemented in
WunderBoss then exposed via a Ruby API in the TorqueBox project. This
lets other projects, in other languages, reuse the same functionality
by creating small language-specific API wrappers.

The web portion of WunderBoss uses JBoss Undertow, which
is also the same web server used in WildFly (the successor
to JBoss Application Server).

We aim to reuse the same underlying components as WildFly so that
TorqueBox applications can run on top of WildFly in addition to
running without it, to give users an option between a full-blown Java
application server and a very lightweight, minimal server.

Current status

Right now TorqueBox 4 provides a high-performance Rack implementation
for web applications and basic APIs for messaging, caching, and
scheduled jobs. The Rack support is considered production-ready, but
the messaging, caching, and scheduling implementations are still in a
bit more flux.

Roadmap

We're developing TorqueBox 4 while also maintaining TorqueBox 3, and
we expect it to take some time before TorqueBox 4 comes out of alpha
and betas and into a final release.

Building TorqueBox

bundle install
rake build

Running specs

rake spec

Running integration tests

Make sure phantomjs is available on your $PATH -
http://phantomjs.org/download.html.

The first time you run the integration tests may take longer as
bundler gets invoked for each test application to install its
dependencies. Subsequent runs with the same JRuby installation should
be faster.

cd integration-tests
rake spec

Running a single integration test

cd integration-tests
SPEC=spec/basic_sinatra_spec.rb rake spec

Running specs with more verbose output

DEBUG=true rake spec

Running all integration test variants (disk, jar, wildfly)

There are several variants of integration tests. Each runs the same
applications and same specs, but packaged in different ways. This
takes quite a bit longer, but is what CI runs.

rake spec:all

Installing from source

rake install

Releasing

Preparation

TorqueBox 4 is released from the master branch of
torquebox/torquebox-release.

Set up this repository as an additional remote for your workspace:

git remote add release git@github.com:torquebox/torquebox-release.git

Ensure that the master branch has the contents you wish to release. Using the -f
flag to force is allowed in this case, since the torquebox-release repository is not
a public-facing human-cloneable repository.

git push release master:master -f

Perform the build

Using the build system, select
the torquebox4-release job, entering in the branch to release from
(usually 'master'), the version to release, and the next version
after release.

If something goes wrong in the release job and it needs to run again,
be sure to reset the torquebox-release repository with the correct code first:

git push release master:master -f

Deploy RubyGems

After the job complete successfully, the generated RubyGems will need
to be manually deployed. Download them from the job and push each
using:

gem push <gem_name>.gem

You'll have to be an owner of the gems to do this. Bug bbrowning,
bobmcw, or tcrawley if you are not.

Publish the release API documentation

The release API docs are built by the release job on CI. Download
those and put them a _4x_docs//yardoc folder in the
torquebox.org git repo.

Push changes from the release repository to the official repository

git fetch release --tags
git merge release/master
git push origin master
git push origin <release_tag>

Release the project in JIRA

Announce it

Post it on torquebox.org

Notify the torquebox-users@ list

Tweet it.

Set the /topic in #torquebox IRC channel using ChanServ (if you can).

去到頂部