diff --git a/README.md b/README.md index 0ec42d1..93873ca 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o - [Machine Learning](#machine-learning) - [Messaging](#messaging) - [Miscellaneous](#miscellaneous) + - [Native](#native) - [Natural Language Processing](#natural-language-processing) - [Networking](#networking) - [ORM](#orm) @@ -97,6 +98,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o *Everything which simplifies interactions with the database.* +* [Apache Phoenix](http://phoenix.apache.org/) - High performance relational database layer over HBase for low latency applications. * [Flyway](http://flywaydb.org/) - Simple database migration with Java API. * [H2](http://h2database.com/) - Small SQL Database notable for its in-memory functionality. * [JDBI](http://jdbi.org/) - Convenient abstraction of JDBC. @@ -126,6 +128,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o * [AspectJ](https://eclipse.org/aspectj/) - Seamless aspect-oriented programming extension. * [Auto](https://github.com/google/auto) - Collection of source code generators. * [DCEVM](http://dcevm.github.io/) - Modification of the JVM that allows unlimited redefinition of loaded classes at runtime. +* [Immutables](http://immutables.github.io/) - Scala-like case classes in standard Java. * [JRebel](http://zeroturnaround.com/software/jrebel/) - Commercial software that instantly reloads code and configuration changes without redeploys. * [Lombok](http://projectlombok.org/) - Code-generator which aims to reduce the verbosity of Java. * [RxJava](https://github.com/Netflix/RxJava) - Library for composing asynchronous and event-based programs using observable sequences from the JVM. @@ -142,6 +145,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o * [Hazelcast](http://hazelcast.org/) - Distributed and highly scalable in-memory datagrid. * [Hystrix](https://github.com/Netflix/Hystrix) - Latency and Fault Tolerance for Distributed Systems. * [JGroups](http://www.jgroups.org/) - Toolkit for reliable messaging and creating clusters whose nodes can send messages to each other. +* [Orbit](http://orbit.bioware.com/) - Virtual Actors, adding another level of abstraction to traditional Actors. * [Quasar](http://www.paralleluniverse.co/quasar/) - Lightweight threads and actors for the JVM. ## Distributed Databases @@ -150,6 +154,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o * [Apache Cassandra](http://cassandra.apache.org) - Apache Cassandra is a distributed column-oriented database providing high availability with no single point of failure. * [Apache HBase](http://hbase.apache.org) - Apache HBase is the Hadoop database, a distributed, scalable, big data store. +* [Infinispan](http://infinispan.org/) - Distributed and highly concurrent key/value datastore used for caching. ## Distribution @@ -192,6 +197,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o * [Koloboke](https://github.com/OpenHFT/Koloboke) - Hash sets and hash maps. * [HPPC](http://labs.carrotsearch.com/hppc.html) - Primitive collections. * [Javolution](http://javolution.org/) - Library for real-time and embedded systems. +* [Reactor](http://projectreactor.io/) - Library for building reactive fast-data applications. * [Trove](http://trove.starlight-systems.com/) - Primitive collections. ## IDE @@ -215,7 +221,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o *Libraries that simplify JSON processing.* -* [Gson](https://code.google.com/p/google-gson/) - Serializes Java objects to JSON and vice versa. Good performance with on-the-fly usage. +* [Gson](https://github.com/google/gson) - Serializes Java objects to JSON and vice versa. Good performance with on-the-fly usage. * [Jackson](http://wiki.fasterxml.com/JacksonHome) - Similar to GSON but has performance gains if you need to instantiate the library more often. ## JVM and JDK @@ -243,7 +249,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o * [Apache Hadoop](http://hadoop.apache.org/) - Open-source software framework for storage and large-scale processing of data-sets on clusters of commodity hardware. * [Apache Mahout](https://mahout.apache.org/) - Scalable algorithms focused on collaborative filtering, clustering and classification. * [Apache Spark](http://spark.apache.org/) - Open-source data analytics cluster computing framework. -* [h2o](http://0xdata.github.io/h2o/) - Analytics engine for statistics over big data. +* [H2O](http://0xdata.com/) - Analytics engine for statistics over big data. * [Weka](http://www.cs.waikato.ac.nz/ml/weka/) - Collection of algorithms for data mining tasks ranging from pre-processing to visualization. ## Messaging @@ -252,6 +258,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o * [Aeron](https://github.com/real-logic/Aeron) - Efficient reliable unicast and multicast message transport. * [Apache ActiveMQ](http://activemq.apache.org/) - Open-source message broker that implements JMS and converts synchronous to asynchronous communication. +* [Apache Camel](http://camel.apache.org/) - Glues together different transport APIs via Enterprise Integration Patterns. * [Apache Kafka](http://kafka.apache.org/) - High-throughput distributed messaging system. * [JBoss HornetQ](http://hornetq.jboss.org/) - Clear, concise, modular and made to be embedded. * [JeroMQ](https://github.com/zeromq/jeromq) - Pure Java implementation of ZeroMQ. @@ -261,12 +268,18 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o *Everything else.* * [Design Patterns](https://github.com/iluwatar/java-design-patterns) - Implementation and explanation of the most common design patterns. +* [fabric8](http://fabric8.io/) - Integration platform for Java containers. * [Jimfs](https://github.com/google/jimfs) - In-memory file system. * [Lanterna](https://code.google.com/p/lanterna/) - Easy console text GUI library similar to curses. * [LightAdmin](http://lightadmin.org/) - Pluggable CRUD UI library for rapid application development. * [Metrics](http://metrics.codahale.com/) - Create your own metrics or add them for supported frameworks, then expose them via JMX or HTTP, or send them to a database. * [OpenRefine](http://openrefine.org/) - Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases. -* [RoboVM](http://www.robovm.org/) - Write native iOS apps in Java. +* [RoboVM](http://www.robovm.org/) - Commercial framework with a free trial to write native iOS apps in Java. + +## Native +*For working with platform-specific native libraries* + +* [JNA](https://github.com/twall/jna) - Work with native libraries without writing JNI. Also provides interfaces to common system libraries. ## Natural Language Processing @@ -313,6 +326,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o * [Feign](https://github.com/Netflix/feign) - Java to HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket. * [Jersey](https://jersey.java.net/) - JAX-RS reference implementation. * [RESTEasy](http://resteasy.jboss.org/) - Fully certified and portable implementation of the JAX-RS specification. +* [RestX](http://restx.io) - Opinionated framework based one annotation processor, providing support for REST endpoint, type safe DI, hot compile/reload, API doc, metrics, specs-oriented endpoint testing. * [Retrofit](http://square.github.io/retrofit/) - A type-safe REST client for Java. * [Spark](http://www.sparkjava.com/) - A Sinatra inspired framework for java. * [Swagger](https://helloreverb.com/developers/swagger) - Swagger is a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services. @@ -356,6 +370,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o * [Apache TomEE](http://tomee.apache.org/) - Tomcat plus Java EE. * [GlassFish](https://glassfish.java.net/) - Open source reference implementation for Java EE sponsored by Oracle. * [Jetty](http://www.eclipse.org/jetty/) - Lightweight, small server, often embedded in projects. +* [WebSphere Liberty](https://developer.ibm.com/wasdev/) - Lightweight, modular server developed by IBM * [WildFly](http://www.wildfly.org/) - Formerly known as JBoss and developed by Red Hat with extensive Java EE support. ## Template Engine @@ -375,9 +390,12 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o * [Apache JMeter](http://jmeter.apache.org/) - Functional testing and performance measurements. * [Arquillian](http://arquillian.org/) - Integration and functional testing platform with integration of Java EE containers. * [AssertJ](http://joel-costigliola.github.io/assertj/) - Fluent assertions that improve readability. +* [Awaitility](https://github.com/jayway/awaitility) - DSL for synchronizing asynchronous operations. +* [Hamcrest](http://hamcrest.org/JavaHamcrest/) - Matchers that can be combined to create flexible expressions of intent. * [JMH](http://openjdk.java.net/projects/code-tools/jmh/) - Microbenchmarking tool for the JVM. +* [JMockit](http://jmockit.org/) - The Mock Anything Toolkit for Java, mocks static, final methods and more. * [JUnit](http://junit.org/) - Common testing framework. -* [Mockito](http://code.google.com/p/mockito/) - Creation of test double objects in automated unit tests for the purpose of TDD or BDD. +* [Mockito](https://github.com/mockito/mockito) - Creation of test double objects in automated unit tests for the purpose of TDD or BDD. * [Selenide](http://selenide.org/) - Concise API around Selenium to write stable and readable UI tests. * [Selenium](http://docs.seleniumhq.org/) - Portable software testing framework for web applications. * [TestNG](http://testng.org/) - Testing framework. @@ -388,8 +406,9 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o *Libraries which provide general utility functions.* * [args4j](http://args4j.kohsuke.org/) - Command line arguments parser +* [JCommander](http://jcommander.org/) - Command line arguments parser; its been around, active, and maintained by the creator since 2010. * [Apache Commons](http://commons.apache.org/) - Provides different general purpose functions like configuration, validation, collections, file upload or XML processing. -* [Guava](http://code.google.com/p/guava-libraries/) - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth. +* [Guava](https://github.com/google/guava) - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth. * [javatuples](http://www.javatuples.org/) - Does what it says, although the concept of tuples in general is debatable. * [JGraphT](http://jgrapht.org/) - A graph library that provides mathematical graph-theory objects and algorithms. @@ -398,7 +417,7 @@ A curated list of awesome Java frameworks, libraries and software. Inspired by o *Libraries that analyze the content of websites.* * [Apache Nutch](http://nutch.apache.org/) - Highly extensible, highly scalable Web crawler for production environment. -* [Crawler4j](https://code.google.com/p/crawler4j/) - Simple lightweight alternative. +* [Crawler4j](https://github.com/yasserg/crawler4j) - Simple lightweight alternative. * [JSoup](http://jsoup.org/) - Scrapes, parses, manipulates and cleans HTML. ## Web Frameworks @@ -432,6 +451,7 @@ h * [Effective Java (2nd Edition)](http://www.amazon.com/Effective-Java-Edition-Joshua-Bloch/dp/0321356683) * [Java Concurrency in Practice](http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601) +* [Java 8 in Action](http://www.amazon.com/Java-Action-Lambdas-functional-style-programming/dp/1617291994/) * [Thinking in Java](http://www.amazon.com/Thinking-Java-Edition-Bruce-Eckel/dp/0131872486) ## Podcasts @@ -459,9 +479,12 @@ h * [Lukas Eder](https://twitter.com/lukaseder) - Founder and CEO Data Geekery (jOOQ). * [Mario Fusco](https://twitter.com/mariofusco) - RedHatter, JUG coordinator, frequent speaker and author. * [Mark Reinhold](https://twitter.com/mreinhold) - Chief Architect, Java Platform Group, Oracle. +* [Markus Eisele](https://twitter.com/myfear) - Java EE evangelist, Red Hat * [Martijn Verburg](https://twitter.com/karianna) - London JUG co-leader, speaker, author, Java Champion and much more. * [OpenJDK](https://twitter.com/OpenJDK) - Official OpenJDK account. +* [Peter Lawrey](https://twitter.com/PeterLawrey) - Peter Lawrey, Java performance expert * [Reza Rahman](https://twitter.com/reza_rahman) - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker. +* [Roberto Cortez](https://twitter.com/radcortez) - Java EE/JPA expert, speaker, open source * [Simon Maple](https://twitter.com/sjmaple) - Java Champion, virtualJUG founder, LJC leader, RebelLabs author. * [Stephen Colebourne](https://twitter.com/jodastephen) - Java Champion, speaker. * [Tim Boudreau](https://twitter.com/kablosna) - Author and NetBeans guru. @@ -478,11 +501,15 @@ h * [Java.net](http://java.net/) * [Javalobby](http://java.dzone.com/) * [JavaWorld](http://www.javaworld.com/) +* [Java, SQL, and jOOQ](http://blog.jooq.org/) * [JAXenter](http://jaxenter.com/) * [RebelLabs](http://zeroturnaround.com/rebellabs/) * [The Java Specialist' Newsletter](http://www.javaspecialists.eu/archive/archive.jsp) * [TheServerSide.com](http://www.theserverside.com/) +* [The Takipi Blog](http://blog.takipi.com/) * [Thoughts On Java](http://www.thoughts-on-java.org/) +* [Vanilla Java](http://vanillajava.blogspot.ch/) +* [Vlad Mihalcea on Hibernate](http://vladmihalcea.com/) * [Voxxed](https://www.voxxed.com/) # Contributing