Proteus Java Client

Overview

Netifi Proteus Java

This project has been moved to https://github.com/netifi/netifi-java

Join the chat at https://gitter.im/netifi/general

Build from Source

  1. Run the following Gradle command to build the project:

     $ ./gradlew clean build
    

Updating Dependencies

The proteus-java build uses Dependencies Lock strategy Which keeps all dependencies versions snapshot in one file. Such a strategy allows avoiding caveats with libs versions and prevent accidental introduction of new dependencies in the project.

In order to update the dependencies versions, it is required to run the project build with additional command as in the following sample

$ ./gradlew clean build --write-locks

Documentation

Bugs and Feedback

For bugs, questions, and discussions please use the Github Issues.

License

Copyright 2017 Netifi Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Comments
  • Minimal build.gradle

    Minimal build.gradle

    I'm trying to use Proteus in a Clojure project, but I'm having trouble triggering the tool that generates 'services' per my proto definitions. I started with the build file found at https://proteus-java.readthedocs.io/en/latest/#getting-started but haven't been able to gradle generateProto.

    Here's my build.gradle:

    plugins {
        id 'com.google.protobuf' version '0.8.7'
        id 'java'
    }
    
    sourceCompatibility = 1.8
    
    dependencies {
        compile "io.rsocket.rpc:rsocket-rpc-core:$rsocketRpcVersion"
        compile "com.google.protobuf:protobuf-java:$protobufVersion"
        compile "com.google.protobuf:protoc:$protobufVersion"
    }
    
    sourceSets {
        main {
            proto { srcDir 'resources/proto' }
        }
    
        test {
            proto { srcDir 'resources/proto' }
        }
    }
    
    protobuf {
        protoc {
            artifact = "com.google.protobuf:protoc:$protobufVersion"
        }
        plugins {
            proteus {
                artifact = 'io.netifi.proteus:proteus-java:1.5.4'
            }
        }
        generateProtoTasks {
            all()*.plugins {
                proteus {}
            }
        }
    }
    
    repositories {
      jcenter()
      maven {
        url 'https://dl.bintray.com/netifi/netifi-oss'
      }
    }
    

    Any tips on how to make this thing work?

    opened by misterzirillo 4
  • Compilation issues when using Spring Boot

    Compilation issues when using Spring Boot

    Issue

    Currently, using proteus-java with Spring Boot causes compilation issues. Spring Boot is pulling in an incompatible version of Guava which overrides the version imported by proteus-java.

    Solution

    We need to shade guava in the proteus-java jars.

    Current Workaround

    You can force the dependency resolution in Gradle using the following, but it is ugly and not cool of us to ask people to add that to each of their spring-based proteus projects.

    configurations.all {
        resolutionStrategy {
            dependencySubstitution {
                substitute module('com.google.guava:guava') with module('com.google.guava:guava:22.0')
            }
        }
    }
    
    enhancement 
    opened by gregwhitaker 4
  • Updated broker_info.proto to provide more broker & destination info

    Updated broker_info.proto to provide more broker & destination info

    Per these cards, broker_info.proto needs some additions in order to provide destination IP addresses and additional broker address info to the console.

    https://netifi.atlassian.net/browse/PROT-196 https://netifi.atlassian.net/browse/PROT-285

    opened by hypothete 1
  • Double Write of SeqId?

    Double Write of SeqId?

    https://github.com/netifi-proteus/proteus-java/blob/2d287cf0333fe2b175f448f1655fbe8e086fcd2b/frames/src/main/java/io/netifi/proteus/frames/AuthenticationResponseFlyweight.java#L35

    Isn't the sequence ID written as part of the header? Is this redundant or is there something I missed on the authentication response frame such that it needs it twice?

    opened by kbahr 1
  • Client auto reconnect after connection failure is damaged in 1.5.3

    Client auto reconnect after connection failure is damaged in 1.5.3

    With Proteus client of version 1.5.3 the client won't reconnect to the Proteus server after connection failure, for example when the server was restarted.

    It does work well for clients from version 1.5.2, even more: In a machine with multiple clients, both 1.5.2 and 1.5.3, only the clients of 1.5.2 had survived Proteus server restart (restarted more than 2 times to verify) .

    In addition, the ability to use Proteus in integration tests (bringing up a test container with Proteus server) was also damaged. Again, when going back to 1.5.2 it works fine.

    The ability to reconnect to the server is critical for applications in production, making it impossible to use the new 1.5.3 version.

    opened by VictorVisoki 11
  • Make it possible to exclude metrics & tracing when generating stubs

    Make it possible to exclude metrics & tracing when generating stubs

    Hi!

    Currently, the generated code contains code for the metrics & tracing, even if it's optional. Would be great to have an option to disable them at the code generation phase.

    Thanks!

    enhancement 
    opened by bsideup 2
Releases(1.6.1)
Owner
netifi-proteus
Proteus projects have been renamed and moved to Netifi's github
netifi-proteus
Socket.IO Client Implementation in Java

Socket.IO-Client for Java socket.io-java-client is an easy to use implementation of socket.io for Java. It uses Weberknecht as transport backend, but

Enno Boland 946 Dec 21, 2022
Full-featured Socket.IO Client Library for Java, which is compatible with Socket.IO v1.0 and later.

Socket.IO-client Java This is the Socket.IO Client Library for Java, which is simply ported from the JavaScript client. See also: Android chat demo en

Socket.IO 5k Jan 4, 2023
Asynchronous Http and WebSocket Client library for Java

Async Http Client Follow @AsyncHttpClient on Twitter. The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and a

AsyncHttpClient 6k Dec 31, 2022
A barebones WebSocket client and server implementation written in 100% Java.

Java WebSockets This repository contains a barebones WebSocket server and client implementation written in 100% Java. The underlying classes are imple

Nathan Rajlich 9.5k Dec 30, 2022
Telegram API Client and Telegram BOT API Library and Framework in Pure java.

Javagram Telegram API Client and Telegram Bot API library and framework in pure Java. Hello Telegram You can use Javagram for both Telegram API Client

Java For Everything 3 Oct 17, 2021
A small java project consisting of Client and Server, that communicate via TCP/UDP protocols.

Ninja Battle A small java project consisting of Client and Server, that communicate via TCP/UDP protocols. Client The client is equipped with a menu i

Steliyan Dobrev 2 Jan 14, 2022
FileServer - A multithreaded client-server program that uses Java Sockets to establish TCP/IP connection

A multithreaded client-server program that uses Java Sockets to establish TCP/IP connection. The server allows multiple clients to upload, retrieve and delete files on/from the server.

Lokesh Bisht 3 Nov 13, 2022
Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

OkHttp See the project website for documentation and APIs. HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP

Square 43.4k Jan 9, 2023
BAIN Social is a Fully Decentralized Server/client system that utilizes Concepts pioneered by I2P, ToR, and PGP to create a system which bypasses singular hosts for data while keeping that data secure.

SYNOPSIS ---------------------------------------------------------------------------------------------------- Welcome to B.A.I.N - Barren's A.I. Natio

Barren A.I. Wolfsbane 14 Jan 11, 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 34 Sep 13, 2022
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 21 Oct 27, 2022
Realtime Client Server Framework for the JVM, supporting WebSockets with Cross-Browser Fallbacks

Welcome to Atmosphere: The Event Driven Framework supporting WebSocket and HTTP The Atmosphere Framework contains client and server side components fo

Atmosphere Framework 3.6k Jan 3, 2023
Standalone Play WS, an async HTTP client with fluent API

Play WS Standalone Play WS is a powerful HTTP Client library, originally developed by the Play team for use with Play Framework. It uses AsyncHttpClie

Play Framework 213 Dec 15, 2022
ZapIt - An advanced MQTT client made for the modern age

ZapIt An advanced MQTT client made for the modern age. Documentation Please refer to the Wiki Section. Installing Go to the Releases section and downl

chocoearly44 4 Oct 8, 2022
A headless client for RioDB

RioDB-Headless-Client A headless client for RioDB. Installation Make sure to have RioDB properly setup. Install/Clone this repository Done! Start the

null 2 Mar 9, 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 149 Dec 31, 2022
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 6k Dec 30, 2022
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 38.2k Dec 31, 2022
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 10.2k Jan 1, 2023