Eclipse Vert.x 是一个事件驱动的应用程序框架,其支持多种编程语言,并运行于Java虚拟机中。[3][4]

Vert.x
原作者Tim Fox
開發者Tim Fox, VMWare, Red Hat, Eclipse基金会
当前版本
  • 5.1.2(2026年6月8日;穩定版本)[1]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
编程语言Java, JavaScript, Apache Groovy, Ruby, Scala, Kotlin, Ceylon, Python, Clojure
操作系统Cross-platform
平台Java虚拟机
类型事件驱动 网络
许可协议Apache License version 2.0
网站vertx.io

在其他编程语言中,与其类似的有Node.js(适用于JavaScript)、Twisted(适用于Python)、Perl Object Environment(适用于Perl)、libevent(适用于C)、reactPHP(适用于PHP)、amphp(适用于PHP)及EventMachine(适用于Ruby)。

自2.1.4版本始,Vert.x以JavaJavaScriptGroovyRubyPythonScalaClojureCeylon编程语言公开其API。

自3.6.0版本始,Vert.x以JavaJavaScriptGroovyRubyScalaKotlinCeylon编程语言公开其API。

历史

编辑

2011年,在VMware工作的 Tim Fox 开始开发Vert.x。

Tim Fox 最初将项目命名为“Node.x”,该名称由Node.js的命名衍生而来,其中“x”表示新项目支持多种编程语言,而非仅支持JavaScript。该项目后来改名为“Vert.x”以避免潜在的法律问题,因为“Node”是 Joyent Inc. 拥有的商标[5]。新名称替换了node一词,所使用的vertex一词在数学中同样意为节点。

2012年12月,VMware向已离职的 Tim Fox 发送法律文件,以期从Vert.x社区[6][7]获得Vert.x商标、域名、博客、GitHub帐户及Google Group的控制权。

与其他各方讨论后,2013年1月,VMware同意将项目和相关IP转移到Eclipse基金会这一中立的法律实体中,以使Vert.x社区获得最大收益。 [8]

2013年8月,Core Vert.x 项目完成了向Eclipse基金会的迁移。Vert.x技术栈中的其他项目并未迁移至Eclipse,但因Eclipse基金会的默认而继续使用“Vert.x”商标。

2014年5月,Vert.x在JAX创新奖中荣获“最具创新性的Java技术”奖。 [9]

2016年1月12日,Tim Fox辞去了Vert.x项目的领导职务。[10]长期贡献者Julien Viet取代了他的位置。

架构

编辑

Vert.x使用底层I/O库Netty[11]

Vert.x拥有以下特性:

  • 支持多种编程语言。应用程序组件能够以Java、JavaScript、Groovy、Ruby、Scala、Kotlin和Ceylon编写。
  • 简单的并发模型。所有代码都是单线程的,免除了多线程编程的麻烦。
  • 简单的异步编程模型,用于编写真正可扩展的非阻塞应用程序。
  • 跨越客户端和服务器端的分布式事件总线。事件总线甚至可以渗透到浏览器中的JavaScript中,从而可以创建所谓的实时Web应用程序。
  • 角色模型和公共存储库,用于重用并共享组件。

示例

编辑

下列Java代码会实现一个输出“Hello from Vert.x”的服务器:

import io.vertx.core.AbstractVerticle;

public class Server extends AbstractVerticle {
  public void start() {
    vertx.createHttpServer().requestHandler(req -> {
      req.response()
        .putHeader("content-type", "text/plain")
        .end("Hello from Vert.x!");
    }).listen(8080);
  }
}

同一服务器的JavaScript版本如下:

vertx.createHttpServer()
  .requestHandler(function (req) {
    req.response()
      .putHeader("content-type", "text/plain")
      .end("Hello from Vert.x!");
}).listen(8080);

上述两种代码均可使得Web服务器以高度可扩展的方式提供内容。

参考

编辑
  1. ^ Release 5.1.2. 2026年6月8日 [2026年6月9日]. 
  2. ^ Eclipse Vert.x 5 released!. 
  3. ^
  4. ^
  5. ^
  6. ^
  7. ^
  8. ^
  9. ^
  10. ^
  11. ^
    vert.x – JVM Polyglot Alternative to Node.js页面存档备份,存于互联网档案馆),Dio Synodinos,2012-05-04,InfoQ

外部链接

编辑

📚 Artikel Terkait di Wikipedia

余数

q} 为整数,且 0 ≤ | r | < | d | {\displaystyle 0\leq \left\vert r\right\vert <\left\vert d\right\vert } 。 当这样定义时,可能导致两种可能的余数。例如,除法式子 − 42 − 5 {\displaystyle

Cg語言

color : COLOR0; }; // vertex shader main entry VertOut main(VertIn IN, uniform float4x4 modelViewProj) { VertOut OUT; OUT.pos = mul(modelViewProj, IN.pos);

演员模型

· zakgof/actr · GitHub. Github.com. [2019-04-16]. (原始内容存档于2020-10-26).  Vert.x (页面存档备份,存于互联网档案馆) ActorFx (页面存档备份,存于互联网档案馆) Akka 2.6.20 Released · Akka

除法

{\begin{matrix}\qquad \quad \;\,X^{2}\;-9X\quad -27\\\qquad \quad X-3{\overline {\vert X^{3}-12X^{2}+0X-42}}\\\;\;{\underline {\;\;X^{3}-\;\;3X^{2}}}\\\qquad \qquad

强化学习

= e Q ( s , a ) / τ ∑ a ′ ∈ A e Q ( s , a ′ ) / τ {\displaystyle \pi (a\vert s)={\frac {e^{Q(s,a)/\tau }}{\sum _{a^{\prime }\in A}e^{Q(s,a^{\prime })/\tau

普林姆算法

顶点数量为numVert, prim生成的树为T0, 最小生成树(MST)为Tmin 则有,cost(Tmin)<=cost(T0) 设: T0 的 numVert-1 条边按照权重由小到大排列依次为:ek1, ek2, ek3, ..., ekn Tmin 的 numVert-1 条边按照权重由小到大排列依次为:eg1

二項式係數

{\displaystyle \alpha } 及 X {\displaystyle X} , | X | < 1 {\displaystyle \left\vert X\right\vert <1} 時成立,故此亦可視作 X {\displaystyle X} 的冪級數的恆等式,即係數為常數1,任意冪之級數定義,且在此定義下,對於冪的恆等式成立,例如