diff --git a/README.md b/README.md index 277da57..e7cb672 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,7 @@ A curated list of awesome Java frameworks, libraries and software. * [Apache Hive] (https://hive.apache.org/) - Data warehouse infrastructure built on top of Hadoop. * [Apache Phoenix](http://phoenix.apache.org/) - High performance relational database layer over HBase for low latency applications. * [Crate](https://crate.io/) - Distributed data store that implements data synchronization, sharding, scaling, and replication. In addition, it provides a SQL-based syntax to execute queries across a cluster. +* [FlexyPool](https://github.com/vladmihalcea/flexy-pool) - Brings metrics and failover strategies to the most common connection pooling solutions. * [Flyway](http://flywaydb.org/) - Simple database migration tool. * [H2](http://h2database.com/) - Small SQL Database notable for its in-memory functionality. * [HikariCP](https://github.com/brettwooldridge/HikariCP) - High performance JDBC connection pool. @@ -179,20 +180,19 @@ A curated list of awesome Java frameworks, libraries and software. * [Presto](https://github.com/facebook/presto) - Distributed SQL query engine for big data. * [Querydsl](http://www.querydsl.com/) - Typesafe unified queries. * [Redisson](https://github.com/mrniko/redisson) - Allows for distributed and scalable data structures on top of a Redis server. -* [FlexyPool](https://github.com/vladmihalcea/flexy-pool) - Brings metrics and failover strategies to the most common connection pooling solutions. ## Data structures *Efficient and specific data structures.* -* [Apache Orc](https://orc.apache.org/) - Fast and efficient columnar storage format for hadoop based workloads. +* [Apache Avro](https://avro.apache.org/) - Data interchange format featuring among others: dynamic typing, untagged data, absence of manually assigned IDs. +* [Apache Orc](https://orc.apache.org/) - Fast and efficient columnar storage format for hadoop based workloads. * [Apache Parquet](http://parquet.apache.org/) - Columnar storage format based on assembly algorithms from the Dremel paper by Google. +* [Apache Thrift](https://thrift.apache.org/) - Data interchange format that originated at Facebook. * [Persistent Collection](http://pcollections.org/) - Persistent and immutable analogue of the Java Collections Framework. * [Protobuf](https://github.com/google/protobuf) - Google's data interchange format. * [SBE](https://github.com/real-logic/simple-binary-encoding) - Simple Binary Encoding, one of the fastest message formats around. * [Wire](https://github.com/square/wire) - Clean, lightweight protocol buffers. -* [Apache Thrift](https://thrift.apache.org/) - Data interchange format that originated at Facebook. -* [Apache Avro](https://avro.apache.org/) - Data interchange format featuring among others: dynamic typing, untagged data, absence of manually assigned IDs. ## Date and Time @@ -291,11 +291,11 @@ A curated list of awesome Java frameworks, libraries and software. *Libraries that facilitate functional programming.* * [Cyclops](https://github.com/aol/cyclops) - Monad and stream utilities, comprehensions, pattern matching, trampolines and much more. +* [derive4j](https://github.com/derive4j/derive4j) - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, morphisms. * [Fugue](https://bitbucket.org/atlassian/fugue) - Functional extensions to Guava. * [Functional Java](http://www.functionaljava.org) - Implements numerous basic and advanced programming abstractions that assist composition-oriented development. * [Javaslang](http://javaslang.com) - Functional component library that provides persistent data types and functional control structures. * [jOOλ](https://github.com/jOOQ/jOOL) - Extension to Java 8 which aims to fix gaps in lambda, providing numerous missing types and a rich set of sequential Stream API additions. -* [derive4j](https://github.com/derive4j/derive4j) - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, morphisms. ## Game Development @@ -360,17 +360,6 @@ A curated list of awesome Java frameworks, libraries and software. * [JDK 9](https://jdk9.java.net/) - Early access releases of JDK 9. * [OpenJDK](http://openjdk.java.net/) - Open-source implementation. -## Languages - -*Languages other than Java that can be used to write JVM applications.* - -* [Scala](http://www.scala-lang.org/) - Statically typed programming language that fuses the object - oriented model and functional programming ideas. -* [Groovy](http://www.groovy-lang.org/) - Optionally typed and dynamic language, with static-typing and static compilation capabilities. Currently an incubating Apache project. -* [Clojure](http://clojure.org/) - Dynamically typed programming language that can be seen as a modern take on Lisp. -* [Ceylon](http://ceylon-lang.org/) - Statically typed object-oriented language developed by RedHat. -* [Kotlin](http://kotlinlang.org/) - JetBrain's statically typed programming language for the JVM, Android and the browser. -* [Eclipse Golo](http://golo-lang.org/) - A simple dynamic language that makes extensive usage of `invokedynamic`, currently an incubating Eclipse Technology project. - ## Logging *Libraries that log the behavior of an application.* @@ -542,8 +531,8 @@ A curated list of awesome Java frameworks, libraries and software. *Libraries that handle serialization with high efficiency.* * [FlatBuffers](https://github.com/google/flatbuffers) - Memory efficient serialization library that can access serialized data without unpacking and parsing it. -* [Kryo](https://github.com/EsotericSoftware/kryo) - Fast and efficient object graph serialization framework. * [FST](https://github.com/RuedigerMoeller/fast-serialization) - JDK compatible high performance object graph serialization. +* [Kryo](https://github.com/EsotericSoftware/kryo) - Fast and efficient object graph serialization framework. * [MessagePack](https://github.com/msgpack/msgpack-java) - Efficient binary serialization format. ## Server @@ -576,12 +565,14 @@ A curated list of awesome Java frameworks, libraries and software. * [Citrus](http://citrusframework.org/) - Integration testing framework with focus on client- and serverside messaging. * [Cucumber](https://github.com/cucumber/cucumber-jvm) - BDD testing framework. * [Gatling](http://gatling.io/) - Load testing tool designed for ease of use, maintainability and high performance. +* [GreenMail](http://www.icegreen.com/greenmail/) - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL. * [Hamcrest](http://hamcrest.org/JavaHamcrest/) - Matchers that can be combined to create flexible expressions of intent. * [JGiven](http://jgiven.org) - Developer-friendly BDD testing framework compatible with JUnit and TestNG. * [JMockit](http://jmockit.org/) - Mocks static, final methods and more. * [JUnit](http://junit.org/) - Common testing framework. * [JUnitParams](https://pragmatists.github.io/JUnitParams/) - Creation of readable and maintainable parametrised tests. * [Mockito](https://github.com/mockito/mockito) - Creation of test double objects in automated unit tests for the purpose of TDD or BDD. +* [Moco](https://github.com/dreamhead/moco) - Concise web services for stubs and mocks, Duke's Choice Award 2013. * [PowerMock](https://github.com/jayway/powermock) - Enables mocking of static methods, constructors, final classes and methods, private methods and removal of static initializers. * [REST Assured](https://github.com/jayway/rest-assured) - Java DSL for easy testing for REST/HTTP services. * [Selenide](http://selenide.org/) - Concise API around Selenium to write stable and readable UI tests. @@ -591,8 +582,6 @@ A curated list of awesome Java frameworks, libraries and software. * [Truth](https://github.com/google/truth) - Google's assertion and proposition framework. * [Unitils](http://www.unitils.org/) - Modular testing library for unit and integration testing. * [WireMock](http://wiremock.org/) - Stubbs and mocks web services. -* [Moco](https://github.com/dreamhead/moco) - Concise web services for stubs and mocks, Duke's Choice Award 2013. -* [GreenMail](http://www.icegreen.com/greenmail/) - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL. ## Utility