Wava

GraphQL with Java

License

License

GroupId

GroupId

com.github.wenerme.wava
ArtifactId

ArtifactId

wava
Last Version

Last Version

0.0.5
Release Date

Release Date

Type

Type

pom
Description

Description

Wava
GraphQL with Java
Project URL

Project URL

https://github.com/wenerme/wava
Source Code Management

Source Code Management

http://github.com/wenerme/wava

Download wava

Filename Size
wava-0.0.5.pom 4 KB
Browse

How to add to project

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

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • wava-parent
  • wava-util

Wener with Java

Get started

# Local development
mvn install -DskipTests -Dgpg.skip

Common

Common core utils for daily java development.

Boot

Spring Boot Scaffold

  • wava-boot-jpa
    • With JPA Dependency
  • wava-boot-postgresql
    • With PostgreSQL Dependency
  • wava-boot-vaadin
    • Auto config for vaadin

Vaadin

Vaadin utils & auto-configuration

Wava Maven Plugin

  • AppendingPatternTransformer
<!-- Merge all services -->
<transformer implementation="me.wener.wava.shade.AppendingPatternTransformer">
  <resource>META-INF/services/me/wener/.*</resource>
</transformer>

Call

  • An
    • Ease enough
    • Fast enough
    • Language agnostic
  • Rpc protocol
  • With
    • WebSocket
  • Support
  • Can generate client stub from Java to
    • Go
    • Dart
      • Use in flutter

Redis

Redis for fun

  • Non-Blocking ByteBuf based packet reader/writer
  • Normal redis server handler
  • Redis command execution framework
  • Redis command parser
  • RDB codec
  • PSYNC handler
  • Cluster protocol codec

Simple Server

  • me.wener.wava.redis.example.RedisSimpleServer
  • Backend by a HashMap per connection
redis-benchmark -t set,get -p 7890 -q --csv -l -c 10

Speed goes high (warm up), then down (gc).

SET,68027.21
GET,83056.48
SET,79239.30
GET,89525.52
SET,84674.01
GET,85034.02
SET,92081.03
GET,91074.68
SET,91407.68
GET,91407.68
SET,91911.76
GET,91659.03
SET,91827.37
GET,86880.97
SET,89525.52
GET,85836.91
SET,88339.23
GET,86956.52
SET,86058.52
GET,83263.95
SET,85689.80
GET,87032.20
SET,85910.65
GET,70472.16
SET,81632.65
GET,70372.98
SET,69930.07
GET,80321.28
redis-benchmark -t set,get -p 7890 -q --csv -l -c 10
redis-benchmark -t set,get -p 7890 -q --csv -l -c 10

About 120k max, CPU 200%

Last 15 record.

SET,57836.90,57670.13
GET,58616.65,60938.45
SET,60496.07,61087.36
GET,61050.06,60459.49
SET,61050.06,63291.14
GET,62073.25,60975.61
SET,61538.46,61957.87
GET,62305.30,63653.72
SET,63451.78,62073.25
GET,61881.19,62695.92
SET,61312.08,60975.61
GET,60277.27,60132.29
SET,61576.36,62266.50
GET,61881.19,61957.87
SET,61766.52,61996.28
GET,61199.51,60569.35

Redis Server

redis-benchmark -t set,get -q --csv -l -c 10

Speed is very steady.

SET,91157.70
GET,92592.59
SET,92336.11
GET,91827.37
SET,90497.73
GET,92678.41
SET,93196.65
GET,92506.94
SET,92165.90
GET,92165.90
SET,90661.83
GET,91074.68
SET,90171.33
GET,92421.44
SET,91911.76
GET,90171.33

About 140k, CPU 100%

SET,71942.45,72411.30
GET,72306.58,72463.77
SET,71225.07,71530.76
GET,72098.05,71890.73
SET,71022.73,71123.76
GET,71633.23,71787.51
SET,71839.09,71377.59
GET,71942.45,72516.32
SET,71581.96,71787.51
GET,72939.46,71942.45

Versions

Version
0.0.5
0.0.4
0.0.3
0.0.2