yass2

Yet Another Service Solution

Лицензия

Лицензия

BSD-3-Clause
Категории

Категории

JavaScript Языки программирования
Группа

Группа

ch.softappeal.yass2
Идентификатор

Идентификатор

yass2-js
Последняя версия

Последняя версия

5.0.0
Дата

Дата

Тип

Тип

module
Описание

Описание

yass2
Yet Another Service Solution
Ссылка на сайт

Ссылка на сайт

https://github.com/softappeal/yass2
Организация-разработчик

Организация-разработчик

softappeal GmbH Switzerland
Система контроля версий

Система контроля версий

https://github.com/softappeal/yass2

Скачать yass2-js

Зависимости

compile (4)

Идентификатор библиотеки Тип Версия
org.jetbrains.kotlin : kotlin-stdlib-js jar 1.3.72
org.jetbrains.kotlinx : kotlinx-coroutines-core-js jar 1.3.8
org.jetbrains.kotlin : kotlin-stdlib-common jar 1.3.72
org.jetbrains.kotlinx : kotlinx-coroutines-core-common jar 1.3.8

Модули Проекта

Данный проект не имеет модулей.

yass2 (Yet Another Service Solution)

  • yass2 is
    • a small Kotlin Multiplatform library
    • for efficient asynchronous/non-blocking Coroutines based peer-to-peer communication
    • enforcing type-safe contracts with interfaces and data transfer objects
                         contract library
                       +-----------------------------------------+
                       | // contract definition                  |
                       | interface Calculator {                  |
                       |   suspend fun add(a: Int, b: Int): Int  |
                       | }                                       |
                       +-----------------------------------------+

  client process                             server process
+----------------------------------+       +----------------------------------------------------+
| // contract usage                |       | // contract implementation                         |
| val calculator: Calculator = ... |       | class CalculatorImpl : Calculator {                |
| println(calculator.add(1, 2))    |       |   override suspend fun add(a: Int, b: Int) = a + b |
|                                  |       | }                                                  |
|..................................|       |....................................................|
|         contract library         |       |                 contract library                   |
|..................................|       |....................................................|
|          yass2 library           |       |                  yass2 library                     |
|..................................|       |....................................................|
|        transport library         | <---> |                transport library                   |
+----------------------------------+       +----------------------------------------------------+
  • provides unidirectional and session based bidirectional remoting

  • provides Ktor transport adaptors for Http, WebSocket and plain Socket

  • Javascript transport uses the Fetch and the WebSocket API instead of Ktor

  • provided either with reflection (works only on the JVM platform and is slower) or by generated code (works on any platform and is faster)

    • fast, compact and extendable binary serializer for high throughput and low latency
    • dumper (generic object printer)
    • interceptor (around advice, aspect-oriented programming)
    • remoting (remote proxy and invoker)
  • Tutorial

  • Open Source (BSD-3-Clause license)

  • yass2 has multiple modules with the following dependencies

yass2-core
     ^
     |
     +--- yass2-coroutines ---> kotlinx-coroutines-core
     |         ^
     |         |
     |    yass2-ktor ---> io.ktor
     |
     |
     +--- yass2-reflect ---> kotlin-reflect
               ^
               |
          yass2-generate
ch.softappeal.yass2

softappeal

softappeal GmbH

Версии библиотеки

Версия
5.0.0
4.0.0
3.0.0
2.0.0
0.0.0.2
0.0.0.1