Experimental Netty-based Java 16 application/web framework

Related tags

Networking autumn
Overview

autumn

Experimental Netty-based application/web framework.

An example application can be seen here.

Should I use this?

Probably not! It's still incredibly early-stage -- everything's versioned at 0.0.1 for a reason, after all~ -- and so there's all sorts of instabilities, weirdness, etc. that you probably don't want to deal with.

Components

  • autumn-example: Example application.
  • autumn-application: Application bootstrap.
  • autumn-config: HJSON-based configuration.
  • autumn-di: Dependency injection framework.
  • autumn-data: Database access layer.
  • autumn-json: JSON helper library.
  • autumn-web: Web framework.

What does work

  • JVM boot to usable API in ~500ms
  • Runs with 32MB of heap RAM or less
  • Runtime DI + modularisation via components
  • Component dependencies
  • JSON
  • Web server
  • HJSON-based autoconfig
  • Object-mapping database manipulation via PostgreSQL JSONB.

What doesn't work

  • Multipart
  • Websockets
  • HTTP/2 (dealing with SSL is a hairy problem)
  • Globbing routes

Build an API in 30 seconds

public class Readme {
    public static void main(String[] args) {
        AutumnApplication.run();
    }

    @Route(method = HttpMethod.GET, path = "/hello/:name")
    public Response hello(Request req) {
        return Response.create().body("henlo " + req.params().get("name") + '!');
    }
}

Modularise with components

@Component
public class HelloComponent {
    public String sayHello(String name) {
        return "henlo " + name + "!";
    }
}

public class Readme {
    @Inject
    private HelloComponent hello;

    public static void main(String[] args) {
        AutumnApplication.run();
    }

    @Route(method = HttpMethod.GET, path = "/hello/:name")
    public Response hello(Request req) {
        return Response.create().body(hello.sayHello(req.params().get("name")));
    }
}

Singleton components for ex. databases

@Component
@Singleton
public class SingletonComponent {
    public String sayHello(String name) {
        return "henlo " + name + "!";
    }
}

public class Readme {
    @Inject
    private SingletonComponent singleton;

    public static void main(String[] args) {
        AutumnApplication.run();
    }

    @Route(method = HttpMethod.GET, path = "/hello/:name")
    public Response hello(Request req) {
        return Response.create().body(singleton.sayHello(req.params().get("name")));
    }
}
Issues
  • Bump netty-all from 4.1.67.Final to 4.1.68.Final

    Bump netty-all from 4.1.67.Final to 4.1.68.Final

    Bumps netty-all from 4.1.67.Final to 4.1.68.Final.

    Commits
    • 7d34282 [maven-release-plugin] prepare release netty-4.1.68.Final
    • a0c9b2f Fix netty-tcnative* entries in bom
    • 6da4956 Merge pull request from GHSA-9vjp-v76f-g363
    • 41d3d61 Merge pull request from GHSA-grg4-wf29-r9vv
    • deb0489 Respect jdk.tls.namedGroups when using native SSL implementation (#11660)
    • f2de2bb Add support for mac m1 (#11666)
    • a53eb80 Throw exceptions when rule violating UDS paths been passed in. (#11663)
    • a329857 Updated "CipherSuitesConverter" to make it public. (#11656)
    • 21fb48e Deprecate UnaryPromiseNotifier (#11653)
    • 37c03cc Include number of maximum active streams in exception message (#11644)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump netty-all from 4.1.63.Final to 4.1.65.Final

    Bump netty-all from 4.1.63.Final to 4.1.65.Final

    Bumps netty-all from 4.1.63.Final to 4.1.65.Final.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump HikariCP from 4.0.3 to 5.0.0

    Bump HikariCP from 4.0.3 to 5.0.0

    Bumps HikariCP from 4.0.3 to 5.0.0.

    Changelog

    Sourced from HikariCP's changelog.

    HikariCP Changes

    Changes in 5.0.0

    • rewrote connection elide/add code to fix an unconfirmed but occassionally reported race condition that results in the pool draining to 0 and not refilling.

    Changes in 4.0.3

    • fixed #1735 added system property to permit override of lower limit of connectionTimeout and validation timeout

    Changes in 4.0.2

    • fixed regression caused by #1605 affecting block-until-filled semantic

    Changes in 4.0.1

    • fixed #1725 pom file change to be more gradle-friendly

    • fixed #1726 regression in micrometrics caused by lack of a strong reference to an object

    Changes in 4.0.0

    • merged #1669 #1582 mark optional dependencies as 'require static' in module-info

    • merged #1700 remove micrometer metrics upon close

    • merged #1661 mark generated proxy classes final

    • merged #1681 allow alternate, more standard, JMX ObjectName, enabled by setting system property 'hikaricp.jmx.register2.0=true'

    • merged #1605 fixes Java 11 issue where setMaximumPoolSize needs to be called before setCorePoolSize in ThreadPoolExecutor

    • merged #1581 handle setting java 'short' property values from property files

    • merged #1699 add new configuration property 'keepaliveTime'

    • merged #1692 fix prometheus histogram metric tracker for multiple pools

    Changes in 3.4.5

    • fixed 1578 build change to ensure that proxies are generated using Java 8, otherwise we end up with class references to Java 11 classes, which fail to load on Java 8.

    Changes in 3.4.4

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump logback-classic from 1.2.5 to 1.2.6

    Bump logback-classic from 1.2.5 to 1.2.6

    Bumps logback-classic from 1.2.5 to 1.2.6.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump classgraph from 4.8.115 to 4.8.116

    Bump classgraph from 4.8.115 to 4.8.116

    Bumps classgraph from 4.8.115 to 4.8.116.

    Release notes

    Sourced from classgraph's releases.

    classgraph-4.8.116

    • Handle unchecked exceptions such as UnsupportedOperationException (rather than dying), which may be thrown by filesystems when accessing a Path object discovered as a classpath element. (#553, thanks to @​wajda for the report and the helpful info on how to reproduce.)
    • Specifically, ignore JrtFileSystem (which throws UnsupportedOperationException if you try to open a new FileChannel on a resource). This filesystem is not needed anyway, as ClassGraph already has the ability to scan all visible modules using the JPMS API.
    Commits
    • d89f233 [maven-release-plugin] prepare release classgraph-4.8.116
    • 8241e57 Merge pull request #554 from classgraph/dependabot/maven/org.apache.maven.plu...
    • fb55a39 Merge pull request #552 from classgraph/dependabot/maven/org.slf4j-slf4j-jdk1...
    • ea04799 Merge pull request #551 from classgraph/dependabot/maven/org.slf4j-slf4j-api-...
    • 6ca4484 Ignore JrtFileSystem (#553)
    • c2792fc Bump maven-javadoc-plugin from 3.3.0 to 3.3.1
    • 9745946 Catch Exception when processing work units (#553)
    • 3f4d2c4 Bump slf4j-jdk14 from 2.0.0-alpha4 to 2.0.0-alpha5
    • 44acd68 Bump slf4j-api from 2.0.0-alpha4 to 2.0.0-alpha5
    • 4fc27be Source > Cleanup
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump jackson.version from 2.12.4 to 2.12.5

    Bump jackson.version from 2.12.4 to 2.12.5

    Bumps jackson.version from 2.12.4 to 2.12.5. Updates jackson-core from 2.12.4 to 2.12.5

    Commits
    • a05a25b [maven-release-plugin] prepare release jackson-core-2.12.5
    • 798fb7d Prepare for 2.12.5 release
    • 5bb637a ...
    • 8733bb4 Merge branch '2.11' into 2.12
    • 0dcfde0 Fix #713: add back BufferRecyclers.getJsonStringEncoder() (removed in 2.10.0)
    • cf5d622 Merge branch '2.11' into 2.12
    • abc7f13 Partial impl of #712 for 2.11
    • e952ae1 Back to snapshot dep
    • ddf383d [maven-release-plugin] prepare for next development iteration
    • See full diff in compare view

    Updates jackson-databind from 2.12.4 to 2.12.5

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump netty-all from 4.1.66.Final to 4.1.67.Final

    Bump netty-all from 4.1.66.Final to 4.1.67.Final

    Bumps netty-all from 4.1.66.Final to 4.1.67.Final.

    Commits
    • b785fa9 [maven-release-plugin] prepare release netty-4.1.67.Final
    • 7903a44 Revert "[maven-release-plugin] prepare release netty-4.1.67.Final"
    • ec23189 Revert "[maven-release-plugin] prepare for next development iteration"
    • 76c55ca [maven-release-plugin] prepare for next development iteration
    • f773733 [maven-release-plugin] prepare release netty-4.1.67.Final
    • 056eba4 server h2c upgrade fail when request doesn't have connection header (#11569)
    • f750e2e Add support for client-side TCP FastOpen to KQueue MacOS (#11560)
    • 699549d Improve test failure reporting of EpollSocketChannelConfigTest (#11570)
    • beb4588 Inline variables to make code more readable (#11565)
    • 3c27e00 Some small improvements (#11564)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump classgraph from 4.8.114 to 4.8.115

    Bump classgraph from 4.8.114 to 4.8.115

    Bumps classgraph from 4.8.114 to 4.8.115.

    Release notes

    Sourced from classgraph's releases.

    classgraph-4.8.115

    Merged pull request from @​larsgrefer to allow class references and not just class names to be used (e.g. to find all the subclasses of a given class). (#549, thanks Lars for the contribution!)

    Commits
    • cab618b [maven-release-plugin] prepare release classgraph-4.8.115
    • a23818d Source > Cleanup
    • f35f183 Merge pull request #549 from larsgrefer/feature/class-overloads
    • c7e8c23 use new overloads in tests
    • 82aa678 Add typed overloads for methods taking class names
    • 4217d6d [maven-release-plugin] prepare for next development iteration
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump classgraph from 4.8.113 to 4.8.114

    Bump classgraph from 4.8.113 to 4.8.114

    Bumps classgraph from 4.8.113 to 4.8.114.

    Release notes

    Sourced from classgraph's releases.

    classgraph-4.8.114

    Fixed bug where short constant values (e.g. short-typed annotation parameter values) were always being read as zero. Thanks to @​liangzengle for reporting the bug and tracing it right down to the source line that needed to be fixed!

    Commits
    • 68dcf10 [maven-release-plugin] prepare release classgraph-4.8.114
    • e0557fe Fix reading of short values from constant pool table (#548)
    • 984d35c Merge pull request #546 from classgraph/dependabot/maven/org.slf4j-slf4j-jdk1...
    • c5bb5e3 Merge pull request #547 from classgraph/dependabot/maven/org.slf4j-slf4j-api-...
    • a978187 Bump slf4j-api from 2.0.0-alpha3 to 2.0.0-alpha4
    • b9b93e5 Bump slf4j-jdk14 from 2.0.0-alpha3 to 2.0.0-alpha4
    • 69caa9a Merge pull request #545 from classgraph/dependabot/maven/org.slf4j-slf4j-jdk1...
    • a4224bb Merge pull request #544 from classgraph/dependabot/maven/org.slf4j-slf4j-api-...
    • cb4fa77 Bump slf4j-jdk14 from 2.0.0-alpha2 to 2.0.0-alpha3
    • 0dff2ef Bump slf4j-api from 2.0.0-alpha2 to 2.0.0-alpha3
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump classgraph from 4.8.112 to 4.8.113

    Bump classgraph from 4.8.112 to 4.8.113

    Bumps classgraph from 4.8.112 to 4.8.113.

    Release notes

    Sourced from classgraph's releases.

    classgraph-4.8.113

    • Don't throw IllegalArgumentException if ClassInfo#getClassesImplementing() or ScanResult#getClassesImplementing() are called for a non-interface class.
    • Don't throw IllegalArgumentException if ClassInfo#getClassesWithAnnotation() or ScanResult#getClassesWithAnnotation() are called for a non-annotation class.

    #543, thanks to @​parttimenerd for the request.

    Commits
    • 9142514 [maven-release-plugin] prepare release classgraph-4.8.113
    • 07bbc10 Remove IllegalArgumentException for wrong class type (#543)
    • e414e16 Remove obsolete exception
    • e8405c3 Merge pull request #541 from classgraph/dependabot/maven/org.openjdk.jmh-jmh-...
    • 9802f60 Merge pull request #542 from classgraph/dependabot/maven/org.openjdk.jmh-jmh-...
    • 8d8dd4b Bump jmh-generator-annprocess from 1.32 to 1.33
    • 8fbfa7a Bump jmh-core from 1.32 to 1.33
    • c9532a3 [maven-release-plugin] prepare for next development iteration
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Owner
amy null
i write software. when i'm lucky, it even works! why are you reading this? ex @railwayapp @GetThru
amy null
LINE 3.4k Jan 17, 2022
IoT Platform, Device management, data collection, processing and visualization, multi protocol, rule engine, netty mqtt client

GIoT GIoT: GIoT是一个开源的IoT平台,支持设备管理、物模型,产品、设备管理、规则引擎、多种存储、多sink、多协议(http、mqtt、tcp,自定义协议)、多租户管理等等,提供插件化开发 Documentation Quick Start Module -> giot-starte

gerry 30 Dec 31, 2021
Simple & Lightweight Netty packet library + event system

Minimalistic Netty-Packet library Create packets with ease Bind events to packets Example Packet: public class TestPacket extends Packet { privat

Pierre Maurice Schwang 11 Jan 3, 2022
jRT measures the response time of a java application to socket-based requests

jRT Version: 0.0.1 jRT is a instrumentation tool that logs and records networking I/O operations "response times" (applicaion response time if be corr

null 44 Feb 5, 2020
Book Finder application is a client-server application (gRPC) for educational purposes.

Book-Finder Book Finder application is a client-server application (gRPC) for educational purposes. Instalation These projects (Client/Server) are Mav

Mihai-Lucian Rîtan 19 Dec 11, 2021
This is an open source android based Music Player application developed in Android Studio

Pulse Music An offline music player android app, with modern UI and powerful features If you liked this repo, fork it and leave a STAR. Your support m

Sharath 5 Dec 8, 2021
Apache Dubbo is a high-performance, java based, open source RPC framework.

Apache Dubbo Project Apache Dubbo is a high-performance, Java-based open-source RPC framework. Please visit official site for quick start and document

The Apache Software Foundation 36.7k Jan 17, 2022
A networking framework that evolves with your application

ServiceTalk ServiceTalk is a JVM network application framework with APIs tailored to specific protocols (e.g. HTTP/1.x, HTTP/2.x, etc…) and supports m

Apple 720 Jan 14, 2022
Fibers and actors for web development

COMSAT Scalable, Concurrent Web Apps Getting started Add the following Maven/Gradle dependencies: Feature Artifact Servlet integration for defining fi

Parallel Universe 600 Nov 20, 2021
The Java gRPC implementation. HTTP/2 based RPC

gRPC-Java - An RPC library and framework gRPC-Java works with JDK 7. gRPC-Java clients are supported on Android API levels 16 and up (Jelly Bean and l

grpc 9.4k Jan 19, 2022
TCP/UDP client/server library for Java, based on Kryo

KryoNet can be downloaded on the releases page. Please use the KryoNet discussion group for support. Overview KryoNet is a Java library that provides

Esoteric Software 1.7k Jan 21, 2022
An annotation-based Java library for creating Thrift serializable types and services.

Drift Drift is an easy-to-use, annotation-based Java library for creating Thrift clients and serializable types. The client library is similar to JAX-

null 198 Dec 16, 2021
Android application allowing to sniff and inject Zigbee, Mosart and Enhanced ShockBurst packets on a Samsung Galaxy S20

RadioSploit 1.0 This Android application allows to sniff and inject Zigbee, Mosart and Enhanced ShockBurst packets from a Samsung Galaxy S20 smartphon

Romain Cayre 46 Dec 10, 2021
Socket.IO server implemented on Java. Realtime java framework

Netty-socketio Overview This project is an open-source Java implementation of Socket.IO server. Based on Netty server framework. Checkout Demo project

Nikita Koksharov 5.6k Jan 20, 2022
A Java library that implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS for Java applications.

TLS Channel TLS Channel is a library that implements a ByteChannel interface over a TLS (Transport Layer Security) connection. It delegates all crypto

Mariano Barrios 123 Jan 2, 2022
ssh, scp and sftp for java

sshj - SSHv2 library for Java To get started, have a look at one of the examples. Hopefully you will find the API pleasant to work with :) Getting SSH

Jeroen van Erp 2k Jan 13, 2022
Java library for representing, parsing and encoding URNs as in RFC2141 and RFC8141

urnlib Java library for representing, parsing and encoding URNs as specified in RFC 2141 and RFC 8141. The initial URN RFC 2141 of May 1997 was supers

SLUB 21 Nov 30, 2021
Java API over Accelio

JXIO JXIO is Java API over AccelIO (C library). AccelIO (http://www.accelio.org/) is a high-performance asynchronous reliable messaging and RPC librar

Accelio 72 Sep 8, 2021
Unconventional I/O library for Java

one-nio one-nio is a library for building high performance Java servers. It features OS capabilities and JDK internal APIs essential for making your h

OK.ru 536 Jan 3, 2022