From cd3386d5fe735d0a8d00d8202d8a72402314e2a7 Mon Sep 17 00:00:00 2001 From: shathor Date: Sun, 19 Jul 2020 13:43:55 +0200 Subject: [PATCH] Cleanup non-Java libraries (#858) --- README.md | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 7fb5133..28eee23 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,6 @@ _Libraries for everything related to the CLI._ _Frameworks that can dynamically manage applications inside of a cluster._ - [Apache Aurora](https://aurora.apache.org) - Mesos framework for long-running services and cron jobs. -- [Apache Mesos](https://mesos.apache.org) - Abstracts CPU, memory, storage, and other compute resources away from machines. - [Singularity](http://getsingularity.com) - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks. ### Code Analysis @@ -259,7 +258,6 @@ _Everything that simplifies interactions with the database._ - [Flyway](https://flywaydb.org) - Simple database migration tool. - [H2](https://h2database.com) - Small SQL database notable for its in-memory functionality. - [HikariCP](https://github.com/brettwooldridge/HikariCP) - High-performance JDBC connection pool. -- [jasync-sql](https://github.com/jasync-sql/jasync-sql) - Async DB driver for MySQL and PostgreSQL. - [JDBI](http://jdbi.org) - Convenient abstraction of JDBC. - [Jedis](https://github.com/xetorthio/jedis) - Small client for interaction with Redis, with methods for commands. - [Jest](https://github.com/searchbox-io/Jest) - Client for the Elasticsearch REST API. @@ -331,7 +329,6 @@ _Libraries and frameworks for writing distributed and fault-tolerant application - [Failsafe](https://github.com/jhalterman/failsafe) - Simple failure handling with retries and circuit breakers. - [Hazelcast](https://github.com/hazelcast/hazelcast) - Highly scalable in-memory datagrid with a free open-source version. - [JGroups](http://www.jgroups.org) - Toolkit for reliable messaging and cluster creation. -- [Orbit](http://www.orbit.cloud) - Virtual actors; adds another level of abstraction to traditional actors. - [Quasar](http://docs.paralleluniverse.co/quasar/) - Lightweight threads and actors for the JVM. - [resilience4j](https://github.com/resilience4j/resilience4j) - Functional fault tolerance library. - [ScaleCube Services](https://github.com/scalecube/scalecube-services) - Embeddable Cluster-Membership library based on SWIM and gossip protocol. @@ -419,7 +416,6 @@ _Libraries for working with geospatial data and algorithms._ - [Apache SIS](https://sis.apache.org) - Library for developing geospatial applications. - [Geo](https://github.com/davidmoten/geo) - GeoHash utilities in Java. -- [Geotoolkit.org](http://www.geotoolkit.org) - Library for developing geospatial applications. Built on top of the Apache SIS project. (LGPL-2.1-only) - [GeoTools](https://geotools.org) - Library that provides tools for geospatial data. (LGPL-2.1-only) - [GraphHopper](https://github.com/graphhopper/graphhopper) - Road-routing engine. Used as a Java library or standalone web service. - [H2GIS](http://www.h2gis.org) - Spatial extension of the H2 database. (LGPL-3.0-only) @@ -451,11 +447,10 @@ _Everything about high-performance computation, from collections to specific lib _Libraries that assist with creating HTTP requests and/or binding responses._ +- [Apache HttpComponents](https://hc.apache.org/) - A toolset of low level Java components focused on HTTP and associated protocols. - [Async Http Client](https://github.com/AsyncHttpClient/async-http-client) - Asynchronous HTTP and WebSocket client library. - [Feign](https://github.com/OpenFeign/feign) - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket. - [methanol](https://github.com/mizosoft/methanol) - HTTP client extensions library. -- [OkHttp](https://square.github.io/okhttp/) - HTTP and SPDY client. -- [Play WS](https://github.com/playframework/play-ws) - Typesafe client with reactive streams and caching. - [restQL-java](https://github.com/b2wdigital/restQL-java) - Microservice query language that fetches information from multiple services. - [Retrofit](https://square.github.io/retrofit/) - Typesafe REST client. - [Ribbon](https://github.com/Netflix/ribbon) - Client-side IPC library that is battle-tested in cloud. @@ -573,16 +568,13 @@ _Tools that provide specific statistical algorithms for learning from data._ - [Apache Flink](https://flink.apache.org) - Fast, reliable, large-scale data processing engine. - [Apache Mahout](https://mahout.apache.org) - Scalable algorithms focused on collaborative filtering, clustering and classification. -- [Apache Spark](https://spark.apache.org) - Data analytics cluster-computing framework. - [DatumBox](http://www.datumbox.com) - Provides several algorithms and pre-trained models for natural language processing. -- [DeepDive](http://deepdive.stanford.edu) - Creates structured information from unstructured data and integrates it into an existing database. - [Deeplearning4j](https://deeplearning4j.org) - Distributed and multi-threaded deep learning library. -- [H2O](https://www.h2o.ai) - Analytics engine for statistics over big data. +- [H2O ![c]](https://www.h2o.ai) - Analytics engine for statistics over big data. - [JSAT](https://github.com/EdwardRaff/JSAT) - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution. (GPL-3.0-only) - [Oryx 2](https://github.com/OryxProject/oryx) - Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering. - [Siddhi](https://github.com/siddhi-io/siddhi) - Cloud native streaming and complex event processing engine. - [Smile](https://github.com/haifengl/smile) - Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library. -- [Synapses](https://mrdimosthenis.github.io/Synapses/#synapses) - Lightweight library for neural networks. - [Weka](https://www.cs.waikato.ac.nz/ml/weka/) - Collection of algorithms for data mining tasks ranging from pre-processing to visualization. (GPL-3.0-only) ### Messaging @@ -613,7 +605,6 @@ _Tools for creating and managing microservices._ - [consul-api](https://github.com/Ecwid/consul-api) - Client for the Consul API: a distributed, highly available and datacenter-aware registry/discovery service. - [Eureka](https://github.com/Netflix/eureka) - REST-based service registry for resilient load balancing and failover. - [Helidon](https://helidon.io) - Two-style approach for writing microservices: Functional-reactive and as an implementation of MicroProfile. -- [Lagom](https://www.lagomframework.com) - Framework for creating microservice-based systems. - [Micronaut](https://micronaut.io) - Modern full-stack framework with focus on modularity, minimal memory footprint and startup time. - [Nacos](https://nacos.io) - Dynamic service discovery, configuration and service management platform for building cloud native applications. - [Quarkus](https://quarkus.io) - Kubernetes stack tailored for the HotSpot and Graal VM. @@ -664,7 +655,6 @@ _Tools for creating or managing mobile applications._ _Tools that monitor applications in production._ - [Automon](https://github.com/stevensouza/automon) - Combines the power of AOP with monitoring and/or logging tools. -- [LeakCanary](https://github.com/square/leakcanary) - Memory leak detection. - [Failsafe Actuator](https://github.com/zalando/failsafe-actuator) - Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot environment. - [Glowroot](https://glowroot.org) - Open-source Java APM. - [inspectIT](https://www.inspectit.rocks) - Captures detailed run-time information via hooks that can be changed on the fly. It supports tracing over multiple systems via the OpenTracing API and can correlate the data with end user monitoring. @@ -673,13 +663,12 @@ _Tools that monitor applications in production._ - [Jaeger client](https://github.com/jaegertracing/jaeger-client-java) - Jaeger client. - [jmxtrans](https://github.com/jmxtrans/jmxtrans) - Connect to multiple JVMs and query them for their attributes via JMX. Its query language is based on JSON, which allows non-Java programmers to access the JVM attributes. Supports different output writes, including Graphite, Ganglia, and StatsD. - [Jolokia](https://jolokia.org) - JMX over REST. -- [Kamon ![c]](https://kamon.io) - Tool for monitoring applications running on the JVM. - [Metrics](https://github.com/dropwizard/metrics) - Expose metrics via JMX or HTTP and send them to a database. -- [Datadog ![c]](https://www.datadoghq.com) - Modern monitoring & analytics. +- [Datadog ![c]](https://github.com/DataDog/dd-trace-java) - Modern monitoring & analytics. - [nudge4j](https://github.com/lorenzoongithub/nudge4j) - Remote developer console from the browser for Java 8 via bytecode injection. - [Pinpoint](https://github.com/naver/pinpoint) - Open-source APM tool. -- [Prometheus](https://prometheus.io) - Provides a multi-dimensional data model, DSL, autonomous server nodes and much more. -- [SPM ![c]](https://sematext.com/spm/) - Performance monitor with distributing transaction tracing for JVM apps. +- [Prometheus](https://github.com/prometheus/client_java) - Provides a multi-dimensional data model, DSL, autonomous server nodes and much more. +- [SPM ![c]](https://github.com/sematext/sematext-agent-java) - Performance monitor with distributing transaction tracing for JVM apps. - [Stagemonitor](https://github.com/stagemonitor/stagemonitor) - Open-source performance monitoring and transaction tracing for JVM apps. - [Sysmon](https://github.com/palantir/Sysmon) - Lightweight platform monitoring tool for Java VMs. - [zipkin](https://zipkin.io) - Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures. @@ -696,21 +685,17 @@ _For working with platform-specific native libraries._ _Libraries that specialize in processing text._ -- [Beagle](https://github.com/tokenmill/beagle) - Stored full-text search query engine. - [CogCompNLP](https://github.com/CogComp/cogcomp-nlp) - Provides common annotators for plain text input. (Research and Academic Use License) - [CoreNLP](https://nlp.stanford.edu/software/corenlp.shtml) - Provides a set of fundamental tools for tasks like tagging, named entity recognition, and sentiment analysis. (GPL-3.0-or-later) - [DKPro](https://dkpro.github.io) - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc. -- [Lingua](https://github.com/pemistahl/lingua) - Natural language detection library, especially suited for short paragraphs of text. - [LingPipe](http://alias-i.com/lingpipe/) - Toolkit for tasks ranging from POS tagging to sentiment analysis. ### Networking _Libraries for building network servers._ -- [AkkaGRPC](https://github.com/akka/akka-grpc) - Support for building streaming gRPC servers and clients on top of Akka Streams. - [Comsat](https://github.com/puniverse/comsat) - Integrates standard Java web-related APIs with Quasar fibers and actors. - [Dubbo](https://github.com/apache/dubbo) - High-performance RPC framework. -- [Finagle](https://github.com/twitter/finagle) - Extensible RPC system for constructing high-concurrency servers. It implements uniform client and server APIs for several protocols, and is protocol-agnostic to simplify implementation of new protocols. - [Grizzly](https://javaee.github.io/grizzly/) - NIO framework. Used as a network layer in Glassfish. - [gRPC](https://github.com/grpc/grpc-java) - RPC framework based on protobuf and HTTP/2. - [KryoNet](https://github.com/EsotericSoftware/kryonet) - Provides a clean and simple API for efficient TCP and UDP client/server network communication using NIO and Kryo. @@ -866,7 +851,6 @@ _Frameworks specifically for creating RESTful services._ - [Dropwizard](https://github.com/dropwizard/dropwizard) - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics. - [Elide](https://elide.io) - Opinionated framework for JSON- or GraphQL-APIs based on a JPA data model. -- [javalin](https://javalin.io) - Javalin is just a few thousand lines of code on top of Jetty, which means its performance is almost equivalent to pure Jetty. - [Jersey](https://jersey.github.io) - JAX-RS reference implementation. - [Microserver](https://github.com/aol/micro-server) - Convenient, extensible microservices plugin system for Spring & Spring Boot. With more than 30 plugins and growing, it supports both micro-monolith and pure microservices styles. - [Rapidoid](https://www.rapidoid.org) - Simple, secure and extremely fast framework consisting of an embedded HTTP server, GUI components and dependency injection. @@ -923,7 +907,6 @@ _Libraries that handle security, authentication, authorization or session manage - [SecurityBuilder](https://github.com/tersesystems/securitybuilder) - Fluent Builder API for JCA and JSSE classes and especially X.509 certificates. - [Themis](https://github.com/cossacklabs/themis) - Multi-platform high-level cryptographic library provides easy-to-use encryption for protecting sensitive data: secure messaging with forward secrecy, secure data storage (AES256GCM); suits for building end-to-end encrypted applications. - [Tink](https://github.com/google/tink) - Provides a simple and misuse-proof API for common cryptographic tasks. -- [Vault](https://www.vaultproject.io) - Secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. It handles leasing, key revocation, key rolling, and auditing. Through a unified API, users can access an encrypted Key/Value store and network encryption-as-a-service, or generate AWS IAM/STS credentials, SQL/NoSQL databases, X.509 certificates, SSH credentials, and more. ### Serialization @@ -952,7 +935,7 @@ _Tools that substitute expressions in a template._ - [Freemarker](https://freemarker.apache.org) - Library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data. - [Handlebars.java](https://jknack.github.io/handlebars.java/) - Logicless and semantic Mustache templates. - [Jade4J](https://github.com/neuland/jade4j) - Implementation of Pug (formerly known as Jade). -- [Jtwig](http://jtwig.org) - Modular, configurable and fully tested template engine. +- [Jtwig](https://github.com/jtwig/jtwig) - Modular, configurable and fully tested template engine. - [Pebble](https://pebbletemplates.io) - Inspired by Twig and separates itself with its inheritance feature and its easy-to-read syntax. It ships with built-in autoescaping for security and it includes integrated support for internationalization. - [Rocker](https://github.com/fizzed/rocker) - Optimized, memory efficient and speedy template engine producing statically typed, plain objects. - [Thymeleaf](https://www.thymeleaf.org) - Aims to be a substitute for JSP and works for XML files. @@ -1087,7 +1070,6 @@ _Frameworks that handle the communication between the layers of a web applicatio - [Blade](https://github.com/lets-blade/blade) - Lightweight, modular framework that aims to be elegant and simple. - [Bootique](https://bootique.io) - Minimally opinionated framework for runnable apps. - [Firefly](http://www.fireflysource.com) - Asynchronous framework for rapid development of high-performance web application. -- [Grails](https://grails.org) - Groovy framework that provides a highly productive environment by favoring convention over configuration, no XML and support for mixins. - [Jooby](http://www.jooby.org) - Scalable, fast and modular micro-framework that offers multiple programming models. - [Ninja](http://www.ninjaframework.org) - Full-stack web framework. - [Pippo](http://www.pippo.ro) - Small, highly modularized, Sinatra-like framework.