yass2

Yet Another Service Solution

Лицензия

Лицензия

BSD-3-Clause
Группа

Группа

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

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

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

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

5.0.0
Дата

Дата

Тип

Тип

pom
Описание

Описание

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

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

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

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

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

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

https://github.com/softappeal/yass2

Скачать yass2

Имя Файла Размер
yass2-5.0.0.pom
yass2-5.0.0.module 1 KB
Обзор

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/ch.softappeal.yass2/yass2/ -->
<dependency>
    <groupId>ch.softappeal.yass2</groupId>
    <artifactId>yass2</artifactId>
    <version>5.0.0</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/ch.softappeal.yass2/yass2/
implementation 'ch.softappeal.yass2:yass2:5.0.0'
// https://jarcasting.com/artifacts/ch.softappeal.yass2/yass2/
implementation ("ch.softappeal.yass2:yass2:5.0.0")
'ch.softappeal.yass2:yass2:pom:5.0.0'
<dependency org="ch.softappeal.yass2" name="yass2" rev="5.0.0">
  <artifact name="yass2" type="pom" />
</dependency>
@Grapes(
@Grab(group='ch.softappeal.yass2', module='yass2', version='5.0.0')
)
libraryDependencies += "ch.softappeal.yass2" % "yass2" % "5.0.0"
[ch.softappeal.yass2/yass2 "5.0.0"]

Зависимости

Библиотека не имеет зависимостей. Это самодостаточное приложение, которое не зависит ни от каких других библиотек.

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

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

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 library             |         |                  contract library                  |
|.........................................|         |....................................................|
|     // 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 |
|                                         |         | }                                                  |
|.........................................|         |....................................................|
|             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