Верт.x
![]() | |
Оригинальный автор(ы) | Тим Фокс |
---|---|
Разработчик(и) | Тим Фокс, Жюльен Вьет, VMWare , Red Hat , Eclipse Foundation |
Стабильная версия | 4.3.7
/ 20 декабря 2022 г [1] |
Репозиторий | |
Написано в | Java , JavaScript , Apache Groovy , Ruby , Scala , Kotlin |
Операционная система | Кросс-платформенный |
Платформа | Виртуальная машина Java |
Тип | управляемая событиями Сеть, |
Лицензия | Лицензия Apache вер. 2.0 , Общественная лицензия Eclipse вер. 2.0 |
Веб-сайт | вершина |
Eclipse Vert.x — это многоязычная , управляемая событиями платформа приложений , которая работает на виртуальной машине Java. [2] [3]
Подобные среды, написанные на других языках программирования, включают Node.js для JavaScript , Twisted для Python , Perl Object Environment для Perl , libevent для C , actPHP и amphp для PHP и EventMachine для Ruby .
История
[ редактировать ]Vert.x был запущен Тимом Фоксом в 2011 году, когда он работал в VMware .
Первоначально Фокс назвал проект «Node.x», обыгрывая название Node.js , причем «x» обозначал тот факт, что новый проект был полиглотным по своей природе и не просто поддерживал JavaScript. Позже проект был переименован в Vert.x, чтобы избежать возможных юридических проблем, поскольку Node был торговой маркой, принадлежащей Joyent Inc. [4] Новое имя также было игрой с названием узла, поскольку вершина является синонимом узла в математике.
В декабре 2012 года, после того как он уволился с работы, VMware предоставила Тиму Фоксу юридические документы о получении контроля над товарным знаком Vert.x, доменным именем, блогом, учетной записью GitHub и группой Google у сообщества Vert.x. [5] [6]
После долгих обсуждений с другими сторонами в январе 2013 года VMware убедили, что в интересах сообщества Vert.x передать проект и связанную с ним интеллектуальную собственность Eclipse Foundation, нейтральному юридическому лицу. [7]
В августе 2013 года основной проект Vert.x завершил переход в Eclipse Foundation. Другие проекты, составляющие стек Vert.x, не перешли на Eclipse, а продолжали использовать торговую марку Vert.x с молчаливого одобрения Eclipse Foundation.
В мае 2014 года Vert.x получила награду «Самая инновационная технология Java» на церемонии вручения наград JAX Innovation Awards. [8]
12 января 2016 года Тим Фокс ушел с поста руководителя проекта Vert.x. [9] и его место занял Жюльен Вьет, давний сотрудник.
Языковая поддержка
[ редактировать ]- Начиная с версии 2.1.4, Vert.x предоставляет свой API на Java , JavaScript, Groovy , Ruby, Python, Scala , Clojure и Ceylon .
- Начиная с версии 3.7.0, Vert.x предоставляет свой API на Java, JavaScript, Groovy, Ruby, Scala, Kotlin и Ceylon.
- Начиная с версии 3.9.1, Vert.x предоставляет свой API на Java, JavaScript, Groovy, Ruby, Scala и Kotlin.
- Начиная с версии 4.0.0, Vert.x предоставляет свой API на Java, Groovy и Kotlin.
Архитектура
[ редактировать ]Этот раздел в значительной степени или полностью опирается на один источник . ( май 2015 г. ) |
Vert.x использует низкоуровневую библиотеку ввода-вывода Netty . [10]
Платформа приложения включает в себя следующие функции:
- Полиглот. Компоненты приложения могут быть написаны на Java, JavaScript, Groovy, Ruby, Scala, Kotlin и Ceylon.
- Простая модель параллелизма. Весь код является однопоточным, что избавляет от хлопот многопоточного программирования.
- Простая модель асинхронного программирования для написания по-настоящему масштабируемых неблокирующих приложений.
- Распределенная шина событий, охватывающая сторону клиента и сервера. Шина событий проникает даже во встроенный в браузер JavaScript, позволяя создавать так называемые веб-приложения реального времени.
- Модель актера и общедоступный репозиторий для повторного использования и совместного использования компонентов.
Примеры
[ редактировать ]Веб-сервер, обслуживающий «Привет от Vert.x!» можно написать на Java:
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);
В обоих случаях веб-сервер будет обслуживать контент с высокой масштабируемостью.
Ссылки
[ редактировать ]- ^ «Eclipse Vert.x 4.3.7» . Гитхаб . Проверено 13 декабря 2021 г.
- ^ Подождите, vert.x — полиглотная альтернатива Node.js для JVM , автор: Дио Синодинос, 4 мая 2012 г., infoq
- ^ Vert.x — асинхронная веб-инфраструктура Java , управляемая событиями, Эберхард Вольф, 20 июня 2012 г., hDeveloper
- ^ «Смена имени» .
- ^ «Отношения VMware с основателем Vert.x должны служить предупреждением».
- ^ «Кто контролирует Vert.x: Red Hat, VMware или никто?»
- ^ "Vert.x присоединяется к Eclipse Foundation"
- ^ "Vert.x получает награду за инновации JAX"
- ^ «Перенаправление в группы Google» .
- ^ vert.x — полиглотная альтернатива Node.js для JVM , автор: Дио Синодинос, 4 мая 2012 г., InfoQ