このページの内容

Awesome Vert.x

Vert.xを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

書籍

ビルドツール

ウェブフレームワーク

  • Vert.x Web (stack) - Vert.x向けフル機能ウェブツールキット
  • Vert.x Jersey - Vert.xでJAX-RS リソースを作成 Jersey
  • Kovert - Kotlin + Vert.x Web向けの見えないRESTフレームワーク
  • Handlers - Vert.x向けオープンウェブフレームワーク
  • QBit - RESTおよびWebSocketメソッド呼び出しのマーシャリングと反応型ライブラリ
  • vertx-rest-storage - ファイルシステムまたはRedisデータベースにRESTリソースの永続化
  • Jubilee - Vert.x 3に基づくRuby HTTPサーバー。Rackと互換性がある
  • Knot.x - Vert.x 3をベースにした現代ウェブサイト向けの効率的かつ高性能な統合プラットフォーム
  • Irked - Vert.x Web向けのアノテーションベースの設定、コントローラーフレームワークとREST向けの表現力のあるAPI
  • REST.VertX - Vert.x垂直アプリケーション向けの軽量JAX-RS(RestEasy)風アノテーションプロセッサ
  • Atmosphere Vert.x - JVM向けリアルタイムクライアントサーバーフレームワーク。WebSocketsおよびサーバー送信イベントをサポートし、クロスブラウザフォールバックを提供
  • Vert.x Vaadin - VaadinアプリケーションをVert.x上で実行
  • Serverx - ルートハンドラアノテーションのみで、Vert.xを活用したサーバーの迅速かつ簡単な設定を可能にする
  • Cloudopt Next - Cloudopt Nextは、非常に軽量で現代的な、JVMベースのフルスタックKotlinフレームワークであり、Java、Kotlin言語をサポートし、優れたJavaライブラリと標準を採用して、モジュール化されやすくテストしやすいJVMアプリケーションの開発を可能にする
  • Donkey - 使いやすさとパフォーマンスを重視した現代的なClojure HTTPサーバーとクライアント
  • SCX - オープンで使いやすいウェブフレームワーク。ほとんどの機能はアノテーションに基づく
  • vertx-rest - resteasy-vertxへの抽象化により、JAX-RSアノテーションに基づいたVert.x RESTアプリケーションの作成を簡略化

Authentication Authorisation

データベースクライアント

データベースに接続するためのクライアント

  • Relational Databases

    • Reactive SQL Client (stack) - 高性能な反応型SQLクライアント
    • JDBC (stack) - JDBCデータソースに対する非同期インターフェース
    • MySQL / PostgreSQL (stack) - MySQL/PostgreSQL向けの非同期クライアント
    • PostgreSQL - 反応型PostgreSQLクライアント
    • database - Oracle、PostgreSQL、SQL Server、HyperSQLなどに向けたセキュリティ、正確性、使いやすさを重視したクライアント
    • jOOQ - タイプセーフかつ非同期のSQLを実行し、jOOQを使用してコードを生成
    • jOOQx - jOOQ DSLのタイプセーフSQLの力を活かし、Vert.xの反応型およびブロッキングフリーSQLドライバーを使用
    • Exposed Vert.x SQL Client - KotlinのExposedVert.x Reactive SQL Clientの上に構築
  • NoSQL Databases

    • MongoDB (stack) - MongoDBデータベースとの相互作用に用いる非同期クライアント
    • Redis (stack) - Redisとの相互作用に用いる非同期API
    • Cassandra (stack) - アプリケーションがCassandraサービスと相互作用できるVert.xクライアント
    • Cassandra - CassandraおよびCassandraマッピングとの相互作用に用いる非同期API
    • Neo4j Java Driver Vert.x - Neo4j Java Driverに対するVert.xのラッパー
    • OrientDB - ノンブロッキング OrientDB サーバー統合
    • Bitsy - ノンブロッキング Bitsy Graph サーバー統合
    • MarkLogic - Marklogic データベースサーバー用非同期クライアント
    • SirixDB - ノンブロッキング SirixDB HTTPサーバー
    • DGraph - Vert.x gRPC に準拠したクライアントの例。ここでは dgraph をターゲットとしている
    • RxFirestore - ノンブロッキング Firestore SDK で反応的に記述されたもの
    • MongoDB - pure functional かつ reactive MongoDB クライアント(Vert.x Effect 上に構築)。リトライ、フェイルオーバー、回復操作の完全なサポート
    • Aerospike - Aerospike サーバーとの非同期かつノンブロッキング API。内部で AerospikeClient’s の非同期コマンドを使用し、結果を Vert.x コンテキストで処理
  • vertx-pojo-mapper - MySQL および MongoDB 用のノンブロッキング POJO マッピング

  • vertx-mysql-binlog-client - MySQL のレプリケーションストリームにアクセスするための Vert.x クライアント

Integration

  • Server-Sent Events

    • jEaSSE - Java Easy SSE。シンプルで軽量の SSE 実装
    • vertx-sse - Vert.x SSE 実装 + イベントバス SSE ブリッジ
  • Mail

    • SMTP (stack) - 非同期 SMTP クライアント
  • REST

  • File Server

    • Vert.x TFTP Client - Vert.x 用の TFTP クライアント(ファイルのダウンロード/アップロードをサポート)
  • Messaging

    • AMQP 1.0 (stack) - Vert.x プロダクタおよびコンシューマー API を使って AMQP 1.0 サーバーとインタラクション
    • MQTT (stack) - 2つのコンポーネントを提供:クライアントとの MQTT コミュニケーションおよびメッセージ交換を扱う MQTT サーバーと、MQTT ブローカーに対してメッセージを送受信する MQTT クライアント
    • RabbitMQ (stack) - RabbitMQ クライアント(AMQP 0.9.1)
    • Kafka Client (stack) - Kafkaクライアント。
    • kafka - キーワード:メッセージの消費と生成を行うKafkaクライアント.
    • STOMP (stack) - Kafkaのクライアントおよびサーバー
    • ZeroMQ - ゼロ・ゼロ・エム・イベント・バス・ブリッジ。
    • Azure ServiceBus - Azure ServiceBus プロダクタとコンシューマ(完全に非同期、Microsoft Azure SDKを使用しない).
    • AMQP 1.0 - Kafka bridge - AMQP 1.0プロトコルを使ってApache Kafkaにメッセージを送受信するためのブリッジ.
    • Vert.x Kafka Client (stack) - Apache KafkaクライアントでApache Kafkaクラスタからのメッセージの読み取りと送信を行う.
    • The White Rabbit - Kotlinコルーチンに基づく非同期RabbitMQ(AMQP)クライアント.
    • WAMP Broker - Vert.xアプリケーションに埋め込むことができるWAMPブローカー.
  • JavaEE

    • JCA adaptor (stack) - Vert.xイベントバス用のJavaコンネクタアーキテクチャアダプタ。
    • Weld - Vert.xエコシステムにCDIプログラミングモデルを導入(CDI観察メソッドをVert.xメッセージコンシューマとして登録、CDIを活用したVerticle、宣言的にルートを定義など).
  • Meteor

    • Meteor - Vert.x Event Busを介したMeteorの統合サポート.
  • Metrics

  • Netflix - Hystrix

  • Dart

  • Push Notifications

    • Onesignal - Vert.xアプリケーションから(モバイル/ウェブ)アプリにプッシュ通知を送信するOneSignal
  • CNCF CloudEvents

Middleware

  • Apache Camel - camelとvert.xイベントバスの間を橋渡しするApache Camelコンポーネント
  • Gateleen - Vert.xをベースとしたミドルウェアライブラリで高度なJSON/REST通信サーバーを構築
  • Gravitee.io - Vert.x Core / Vert.x Webおよびその他のモジュールをベースにしたオープンソースAPIプラットフォーム(APIゲートウェイおよびOAuth2 / OIDC認証サーバーを含む)
  • API Framework - Vert.xとGlueを用いたマイクロサービスフレームワーク。スタンドアローンアプリとサーバレスアプリの区別をなくす。すべてのサービスはスタンドアローンサーバー上で実行可能だが、必要に応じて同じコードベースでサーバレスアプリとしても実行できる

言語サポート

Vert.xへのプログラミング言語のサポート

言語拡張

Reactive

  • Reactive Streams (stack) - バージョンスタック
  • Vert.x Rx (stack) - Vert.x リアクティブ拡張
  • Vert.x Sync (stack) - Vert.x fiber対応
  • Kotlin coroutines (stack) - Kotlin coroutines対応
  • vertx-util - ライトウェイトのプロミスとラッチをVert.x向けに提供。
  • QBit - アシンクな型付きアクターのようなライブラリで、Vert.xのアシンクコールバックで簡単に実行可能。コールバック管理。
  • VxRifa - Vert.X用のユーティリティライブラリで、EventBusを介した通信において強型インターフェースを使用可能にする。
  • Vert.x Effect - IO Monadに基づく純粋な関数型かつ反応型のライブラリで、いかなる複雑なフローも実装可能です。リトライ、フェイルオーバー、回復操作について完全なサポートがあります。
  • SmallRye Mutiny - Java向け直感的なイベント駆動型反応プログラミングライブラリで、bindings for Vert.x

Sync Thread Non Block

  • Sync - 同期処理だがOSスレッドをブロッキングしないverticles。

Vert.x Event Bus Clients

アプリケーションがVert.xイベントバスに接続するためのクライアント

  • C++11 - C++11イベントバスクライアント。
  • Java - vertxbus.jsのJava実装。
  • Java - JavaとAndroidのイベントバスクライアント。
  • Java - シンプルなJavaイベントバスクライアント(標準TCPソケットI/Oを使用)
  • CLI - Vert.xイベントバス向けコマンドラインバイナリクライアント - JSONをパイプに取り込み、JSONを発行。
  • Swift - Apple’s Swift用のイベントバスクライアントを用意しています。 TCP-based protocol
  • Python - Pythonで使用するイベントバスクライアントの。 TCP-based protocol
  • C# - C#用のイベントバスクライアント、TCP-based protocolを用いる。
  • C - C99で使用するイベントバスクライアントのTCP-based protocol
  • Go- Go言語用のイベントバスクライアント、TCP-based protocolを用いる。
  • Smalltalk- Pharo Smalltalk用のイベントバスクライアントをで実装。 TCP-based protocol
  • Java - JavaコードでJavaScriptにおけるイベントバスのサポート
  • Elixir - Elixirアプリ向けのTCPソケットを使用したイベントバスサポート。
  • Rust - Rustアプリケーション向けのTCPを用いたイベントバスクライアント。

Vert.x Event Bus Extensions

  • Eventbus Service - 型安全なイベントバス通信をシンプルなKotlinインターフェースで生成するコードジェネレーター

Cluster Managers

vert.xクラスタマネージャーSPIの実装

クラウド対応

Microservices

  • Service Discovery (stack) - Vert.x Service Discovery.
  • Circuit Breaker (stack) - Vert.x サイクルブレーカー。
  • Service Discovery - Consul (stack) - ConsulがVert.x Service Discoveryに追加
  • Service Discovery - Docker links (stack) - DockerがVert.x Service Discoveryに追加
  • Service Discovery - Kubernetes (stack) - KubernetesがVert.x Service Discoveryに追加
  • Service Discovery - Redis backend (stack) - RedisがVert.x Service Discoveryのストレージバックエンド
  • Vert.x GraphQL Service Discovery - GraphQLによるVert.xマイクロサービスのサービス発見とクエリ
  • Resilience4j - Resilience4jはJava8および関数型プログラミング向けの障害耐性ライブラリです。Resilience4jは、回路ブレイク、レート制限、バッチング、自動リトライ、応答キャッシュ、メトリクス測定といったモジュールを提供します
  • Failsafe - FailsafeはJava 8+向けの軽量でゼロ依存の失敗処理ライブラリです。簡潔なAPI。AkkaやVert.xなど、自社スケジューラを使用するライブラリとの統合、Vert.x example
  • Autonomous Services - 自律サービスを作成するためのツールキット。Vert.xとnannoq-toolsを活用したイベントベースの反応アーキテクチャを提供し、通信やデータのための中央コンポーネントを一切不要にし、アーキテクチャ全体の理論的に線形なスケーラビリティを実現します。
  • Apache ServiceComb Java Chassis - ServiceComb Java Chassisは、Javaでマイクロサービスを高速開発できるためのソフトウェア開発キット(SDK)であり、サービス登録、サービス発見、動的ルーティング、サービス管理機能を提供する。
  • SmallRye Fault Tolerance - SmallRye Fault ToleranceはEclipse MicroProfile Fault Toleranceの実装であり、規格で定義されていない追加機能を提供。NativeサポートのVert.xおよびMutiny
  • GuicedEE - GuiceおよびVert.x 5をベースにした、モジュール化・反応型・企業向けアプリケーションを構築するJPMS-first Javaプラットフォーム。MicroProfile Config、Health、Metrics、OpenAPI、REST、永続化など、本体で提供。

ゲーム開発

  • Orbital - Vert.xベースの反応型分散ゲームサーバーおよびバトルロイヤルマルチプレイヤー開発ツール。Orbitalには基本的な拡張可能なマッチメーカー、ゲーム/ゲームルーム管理、WebSocket統合およびゲームライフサイクル管理機能を提供。Colyseusゲームエンジンの競合に最も近い。Docs

検索エンジン

Service Factory

Config

依存性注入

  • Vert.x Guice - Guiceの依存性注入用のVert.xのverticleファクトリ
  • Vert.x HK2 - HK2依存性注入用のVert.xのverticleファクトリ。
  • Spring Vert.x Extension - Spring DI注入用のVert.x verticleファクトリ。
  • Vert.x Beans - SpringアプリケーションにVert.xオブジェクトをビーンとして注入。
  • QBit - QBitはSpring DIおよびSpring Boot(もちろんVert.x)と連携。QBit、Vert.x、Spring DIおよびSpring Bootを同じアプリケーション内で使用できる。
  • Vert.x Eclipse SISU - Vert.xがEclipse SISUDIコンテナと統合。
  • Vert.x Spring Verticle Factory - Springを用いてVerticleを取得・構成するVert.x Verticle Factory。
  • Glue - JavaおよびVert.xベースのアプリケーション向けに、確実で意見のあるプログラミングおよび設定モデル。ATG Nucleusをインスピレーションとして、シンプルなプロパティファイルを使って強力なレイヤーベースの設定管理を提供する。

テスト

  • Vert.x Unit (stack) - Vert.x向けの非同期多言語ユニットテスト。
  • Vert.x JUnit5 (stack) - JUnit5を使ったVert.x向けの非同期ユニットテスト。
  • Vert.x WireMongo - Vert.x向けの軽量MongoDBのモック。

開発ツール

  • Vert.x shell (stack) - コマンドラインからVert.xとのインタラクションを可能にする。
  • Vert.x health check - Vert.xプロジェクト向けのリモートヘルスチェックを可能にする。
  • Vert.x Hot - Maven向けのVert.xプロジェクトのホットデプロイプラグイン。
  • Vert.x for Visual Studio Code - Visual Studio Code(多言語対応)プラグイン。また、Marketplaceからも入手可能。
  • Vert.x Starter - Vert.xアプリケーション向けのブラウザベースのプロジェクトスタートアップおよびテンプレート。
  • Vert.x LiveReload - Vert.xアプリケーション向けのシンプルなライブリロードサーバー。
  • openapi-generator - OpenAPI Generatorは、OpenAPI Spec(v2、v3)をもとにAPIクライアントライブラリ(SDK生成)、サーバースタブ、ドキュメントおよび設定を自動生成する。

Miscellaneous

  • Vert.x Child Process - Vert.xから子プロセスを生成する。
  • vertx-redisques - Vert.x上で実装された、非常にスケーラブルなRedisベースの永続キューングシステム。
  • Simple File Server - OpenStack Swiftと互換性のある分散オブジェクトストレージサーバー。このサーバーは、極小なリソースで、数十億の大きなおよび小さなファイルを安全にサーバーし、保存できる。
  • Vert.x Boot - HOCON設定からVert.xのVerticleをデプロイする。
  • GDH - Vert.xをベースに構築された、一般化されたDiffie-Hellman鍵交換Javaライブラリ。
  • vertx-values - immutableかつ永続的なJSONをjson-valuesからイベントバスに送信する。

Distribution

  • Vert.x Stack (stack) - Vert.x + エンダースドモジュール。

サンプル

  • Vert.x blueprint - Microservice application (stack) - 実際のVert.xブループリント。複雑なマイクロサービスアプリケーションの構築方法を示す。
  • Vert.x blueprint - Job Queue (stack) - 実際のVert.xブループリント。分散ジョブ処理アプリケーションの構築方法を示す。
  • Vert.x blueprint - TODO backend (stack) - Vert.xの公式ガイドラインで、TODOアプリケーションのバックエンドを構築する方法を示している.
  • Vert.x examples (stack) - Vert.xの公式サンプルで、ウェブサンプル、公式データベースクライアントの使い方などについて記載している.
  • Vert.x feeds - Vert.x、Gradle、MongoDB、Redis、Handlebarsテンプレート、AngularJS、イベントバス、SockJSを使用して構築されたRSSアグレゲーターの例.
  • Vert.x Markdown service - service-proxyとGradleを使用する方法の例.
  • Example using event bus and service proxies to connect vertx and node - イベントバスとサービスプロキシを使ってVert.xとNodeを接続する方法を、ステップごとに説明したWiki記述付きの例.
  • Vert.x Todo-Backend implementation - Java 8のみで構成されたTodo MVCのバックエンド。ストレージにはVert.xのLocalMapを使用している.
  • Kotlin Todo-Backend implementation - Kotlinで構成されたTodo MVCのバックエンド.
  • Scala Todo-Backend implementation - Scalaで構成されたTodo MVCのバックエンド.
  • Grooveex Todo-Backend implementation - Vert.x + Groovy + 構文糖およびDSLルーティング機能を用いたTodo MVCのバックエンド実装.
  • Vert.x Gradle Starter - Java 8のスタートアップアプリで、Vert.xとGradleビルドシステム、プロファイル設定、SLF4Jの使用例を示している.
  • Vert.x Gentics Mesh Example - Gentics MeshとHandlebarsを使ってテンプレートベースのWebサーバーを構築する方法の例.
  • HTTP/2 showcase - HTTP/2が、大きな遅延が関わる場合にユーザー体験を大きく改善できるというシンプルなデモ.
  • Vert.x Music Store - RxJavaを使ってVert.xアプリケーションを構築する方法の例.
  • Crabzilla - もう一つのイベントソース実験。Vert.xを使ってイベントソース/CQRSアプリケーションを開発するプロジェクトを探索している.
  • Vert.x PostgreSQL Starter - Vert.xスタックとPostgreSQLを使って、モノリスックなCRUD RESTful Webサービスを構築するためのスタートアップ例.
  • Cloud Foundry - Vert.xを用いて、 Cloud Foundryサービスプロバイダーにデプロイするための例アプリケーション.
  • Knative - Reactive Extensions Vert.xKnativeを使って、アプリケーションを構築する方法の例.
  • Starter Single Verticle API - REST APIスタートアップとプロジェクトテンプレート。多くのインフラコード、例、ドキュメントが用意されており、Vert.xの知識がほとんどなくとも、短時間でAPIを開発できるようになっている.
  • AI model output API based on PMML with Vert.x - Vert.xに基づく高性能PMML評価API。JSONを用いて複数のPMMLモデルに対して動的ルーティング設定をサポートしている.

デプロイ

  • Vert.x Deploy Application - (スムーズに) AWSベースのVert.xアプリケーションクラスタにデプロイする

ユーティリティ

  • Chime - タイムスケジューラーがVert.xイベントバス上で動作し、cronスタイルおよびインターバルタイマーによるスケジューリングを可能にする。
  • Vert.x Cron - cron仕様でイベントをスケジュール可能。イベントバスおよびObservableバージョンを提供。
  • Vert.x CronUtils - Vert.xスケジューラー向けのcron-utilsの抽象化。Unix、Cron4jおよびQuartzスタイルの表現がサポートされている。
  • Vert.x Scheduler - cronスタイルおよびインターバルタイマーによるスケジューリングに用いる、外部ライブラリなしのシンプルなプラグイン型スケジューラー。同期および非同期タスクの詳細なモニタリングが可能。
  • Vert.x POJO config - 標準JSON設定と(型安全)設定Javaビーンの間のマッピングを可能にする。また、JSR 303による設定ビーンの検証も可能。
  • Vert.x Async - caolan/async Node.jsモジュールをVert.xフレームワークに移植したもの。一般的な非同期パターンに必要なヘルパーメソッドを提供。
  • Vert.x JOLT - 元のbazaarvoice JOLTプロジェクトに基づくJSONからJSONへの変換ツール。異なるJSON構造を期待されるJSONフォーマットに変換するのに役立つ。
  • Vert.x Dependent Verticle Deployer - Vert.xのVerticleとして、Verticleおよびその依存VerticleをデプロイするためのVerticle。
  • Vert.x Dataloader - Facebook DataloaderのJava版(Vert.x向け)。データレイヤーにおける効率的なバッチ処理およびキャッシュ。
  • Vert.x Util - Vert.xユーティリティメソッドのコレクション。
  • Vert.x Web Accesslog - Vert.x Webでアクセスログを生成するために使用するシンプルなハンドラー。
  • Vert.x GraphQL Utils - GraphQLクエリをVert.xおよびVertix Webで処理するためのルートハンドラーおよびVert.x互換インターフェース。
  • Nannoq-Tools - Nannoq-Toolsは、Vert.xを活用した堅牢でスケーラブルかつ分散型アプリケーションを構築するためのツールキット。認証、クラスタ管理、Firebase Cloud Messaging、DynamoDB、完全に一般化されたクエリ、RESTなど、多くのモジュールを提供。
  • Contextual logging - Vert.xイベントループモデルと連携するマップされた診断コンテキスト(MDC)。
  • Vert.x JsonPath - Vert.xのJsonObjectおよびJsonArrayを用いたJsonPathの非常に基本的な実装。getX、containsKey、putおよびremoveメソッドを模倣。

プレゼンテーション

コミュニティ

  • User Group - Vert.xを使用する際のすべてのユーザーの問題について議論。
  • Developer Group - Vert.xコアの開発者および貢献者のグループ。
  • Discord Server - Vert.xに関連するあらゆるトピックについてチャット。
  • Issues - Vert.xコアの問題トラッカー。
  • Wiki - Vert.xに関する有用な情報が含まれている。
  • Blog - オフィシャル Vert.x ブログ。多くのチュートリアルやその他の情報が掲載されています。

記事

チュートリアル

Front-End

  • VertxUI - 純粋な Java フロントエンドツールキット。モデルに対する説明的なフリュイドなビュー、POJO によるトラフィック、仮想 DOM または実際の DOM における混合言語によるテストなどがあります。

コントリビューション

ご貢献をお待ちしております!まずcontribution guidelinesを読んでください。