Перейти к основному содержанию

Обзор

Мощный асинхронный HTTP-сервер и клиент с поддержкой WebSocket.

Лаконичная и более эффективная альтернатива Spring, Jetty, Vert.x и другим подобным решениям. ActiveJ HTTP значительно превосходит их, что доказывают многочисленные бенчмарки .

Предоставляет инструменты для создания HTTP-серверов и клиентов с асинхронным вводом/выводом простым и удобным способом:

public final class HttpHelloWorldExample extends HttpServerLauncher {  @Provides  AsyncServlet servlet() {    return request -> HttpResponse.ok200().withPlainText("Hello World");  }
  public static void main(String[] args) throws Exception {    Launcher launcher = new HttpHelloWorldExample();    launcher.launch(args);  }}

Характеристики#

  • Полностью асинхронный
  • Никаких сторонних зависимостей, построен поверх модуля ActiveJ Net .
  • Отсутствие унаследованных слоев адаптеров
  • Поддержка WebSocket
  • Поддержка TLS
  • Может использоваться как веб-сервер приложений: поддерживает предоставленные извне ActiveJ Inject (DI) модули с бизнес-логикой и AsyncServlets.
  • Чрезвычайно высокая скорость, подтвержденная эталонными образцами .
  • Высоко оптимизированный и удобный для GC:
    • Автоматическая переработка ByteBufs , связанных с HttpRequest/HttpResponse , а также ByteBufs , полученных от Net async сокетов.
    • Оптимизированное мультимап заголовков и внутреннее представление URL с низким выходом мусорных объектов
    • Подклассы специализированных заголовков выводят свое содержимое непосредственно в ByteBuf, без промежуточных мусорных объектов.

AsyncServlet#

  • По сути, это просто асинхронная функция, отображающая HttpRequest на HttpResponse
  • Коллекция предопределенных AsyncServlets из коробки (StaticServlet, BlockingServlet, RoutingServlet, и т.д.).
  • Широкая поддержка функциональной композиции AsyncServlets. RoutingServlet для построения маршрутизации сервлетов.
    • Гибкое отображение HTTP путей и методов на AsyncServlets (включая другие RoutingServlets).
    • Поддержка параметров пути (например, /users/:id) и относительных путей.

Добавьте ActiveJ HTTP в ваш проект#

Вы можете добавить ActiveJ HTTP в свой проект, импортировав его репозиторий Maven. Эта документация охватывает последний выпуск ActiveJ HTTP v5.0-beta2 (см. на сайте Github или Maven).