Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-jvm

A curated list of awesome loosely performance related JVM stuff. Inspired by awesome-python.
https://github.com/deephacks/awesome-jvm

Last synced: 3 days ago
JSON representation

  • Bytecode

    • asmtools - Used to develop tools for the production of Java .class files.
    • Byte Buddy - Code generation library creating Java classes at runtime without the help of a compiler.
    • asmtools - Used to develop tools for the production of Java .class files.
    • Byte Buddy - Code generation library creating Java classes at runtime without the help of a compiler.
    • Jitescript - Bytecode generation library similar to BiteScript.
  • Garbage collectors

    • Azul Pauseless Garbage Collection - Providing continuous, pauseless operation for Java applications.
    • Balanced GC - GC policy available in the Java Virtual Machine for IBM WebSphere Application Server V8.
    • Epsilon GC - Completely passive GC implementation with bounded allocation limit, and lowest runtime performance overhead possible.
    • G1 - The Garbage-First Garbage Collector.
    • Shenandoah - Ultra-Low-Pause-Time Garbage Collector.
    • The Garbage Collection Handbook - Book that addresses new challenges to garbage collection made by recent advances in hardware and software.
    • ZGC - Garbage collector optimized for low latency and very large heaps.
    • Balanced GC - GC policy available in the Java Virtual Machine for IBM WebSphere Application Server V8.
    • Epsilon GC - Completely passive GC implementation with bounded allocation limit, and lowest runtime performance overhead possible.
    • Shenandoah - Ultra-Low-Pause-Time Garbage Collector.
    • The Garbage Collection Handbook - Book that addresses new challenges to garbage collection made by recent advances in hardware and software.
    • ZGC - Garbage collector optimized for low latency and very large heaps.
    • The Garbage Collection Handbook - Book that addresses new challenges to garbage collection made by recent advances in hardware and software.
  • Load tools

    • Gatling - Asynchronous non-blocking scenario driven load testing tool for testing HTTP servers.
    • Gatling - Asynchronous non-blocking scenario driven load testing tool for testing HTTP servers.
    • wrk2 - A constant throughput, correct latency recording variant of wrk.
  • Languages

    • Ceylon - Object-oriented, strong and static programming language with an emphasis on immutability, created by Red Hat.
    • Clojure - Dialect of Lisp created by Rich Hickey. Dynamically typed with emphasis on functional programming.
    • Erjang - A JVM-based Erlang VM.
    • Eta - Pure, lazy, strongly typed functional programming language on the JVM.
    • Golo - A simple dynamic language that makes extensive usage of `invokedynamic`.
    • Groovy - Optionally typed and dynamic language, with static-typing and static compilation capabilities.
    • Java - General-purpose, concurrent, strongly typed, class-based object-oriented language.
    • JRuby - Implementation of the Ruby language on the JVM.
    • Jython - Python for the Java Platform.
    • Kawa - Extension of the Scheme language, which is in the Lisp family of programming languages.
    • Kotlin - Statically typed programming language for the JVM, Android and the browser.
    • LuaJ - Java-centric implementation of lua vm built to leverage standard Java features.
    • Nashorn - Lightweight high-performance JavaScript runtime in Java with a native JVM.
    • OCaml-Java - Supports OCaml language v4. Generates plain Java bytecode and have seamless integration with Java.
    • Renjin - JVM-based interpreter for the R language for the statistical analysis
    • Scala - Strong and static programming language that combine object-oriented and functional programming ideas.
    • Xtend - Flexible and expressive dialect of Java, which compiles into Java 5 source code.
    • Ceylon - Object-oriented, strong and static programming language with an emphasis on immutability, created by Red Hat.
    • Clojure - Dialect of Lisp created by Rich Hickey. Dynamically typed with emphasis on functional programming.
    • Eta - Pure, lazy, strongly typed functional programming language on the JVM.
    • JRuby - Implementation of the Ruby language on the JVM.
    • Jython - Python for the Java Platform.
    • Kotlin - Statically typed programming language for the JVM, Android and the browser.
    • Nashorn - Lightweight high-performance JavaScript runtime in Java with a native JVM.
    • Renjin - JVM-based interpreter for the R language for the statistical analysis
    • Scala - Strong and static programming language that combine object-oriented and functional programming ideas.
    • Xtend - Flexible and expressive dialect of Java, which compiles into Java 5 source code.
    • Golo - A simple dynamic language that makes extensive usage of `invokedynamic`.
    • JRuby - Implementation of the Ruby language on the JVM.
  • Machine Learning

    • Deeplearning4j - Open-Source, Distributed, Deep Learning Library for the JVM.
    • H2O - Fast statistical, machine learning & math runtime.
    • Deeplearning4j - Open-Source, Distributed, Deep Learning Library for the JVM.
    • H2O - Fast statistical, machine learning & math runtime.
  • Memory and concurrency

    • Apache Arrow - A high-performance cross-system data layer for columnar in-memory analytics.
    • Cap’n Proto - Insanely fast data interchange format and capability-based RPC system.
    • commons-math - Library of lightweight, self-contained mathematics and statistics components.
    • FlatBuffers - Efficient cross platform serialization library for C++, C#, Go, Java, JavaScript, PHP, and Python.
    • DSL-JSON - High performance JSON library with advanced compile-time databinding.
    • jsoniter - Claims to be the fastest JSON parser ever (copy of DSL-JSON).
    • Koloboke - Java Collections til the last breadcrumb of memory and performance.
    • MapDB - Collections backed by off-heap or on-disk storage.
    • netty-buffers - Memory buffer pool implementation similar to jemalloc.
    • ObjectLayout - A layout-optimized Java data structure package.
    • parquet - Columnar storage format that uses the record shredding and assembly algorithm described in the Dremel paper.
    • protobuf - Google's data interchange format.
    • Quasar - Lightweight threads and actors for the JVM.
    • RTree2D - RTree2D is a 2D immutable R-tree with STR (Sort-Tile-Recursive) packing for ultra-fast nearest and intersection queries on plane and spherical surfaces.
    • Reactive Streams - Standard for asynchronous stream processing with non-blocking back pressure.
    • Reactor - Reactive data applications on the JVM for Java, Groovy, Clojure and other.
    • RxJava - Library for composing asynchronous and event-based programs using observable sequences.
    • DataSketches - A Java software library of stochastic streaming algorithms.
    • TraneIO - High-performance implementation of the Future abstraction.
    • VarInt - No-deps variable int implementation without deps (by Bazel).
    • vavr - Functional Library for Java 8+.
    • Apache Arrow - A high-performance cross-system data layer for columnar in-memory analytics.
    • commons-math - Library of lightweight, self-contained mathematics and statistics components.
    • failsafe - A lightweight, zero-dependency library for handling failures.
    • FlatBuffers - Efficient cross platform serialization library for C++, C#, Go, Java, JavaScript, PHP, and Python.
    • DSL-JSON - High performance JSON library with advanced compile-time databinding.
    • Koloboke - Java Collections til the last breadcrumb of memory and performance.
    • MapDB - Collections backed by off-heap or on-disk storage.
    • netty-buffers - Memory buffer pool implementation similar to jemalloc.
    • ObjectLayout - A layout-optimized Java data structure package.
    • protobuf - Google's data interchange format.
    • RTree2D - RTree2D is a 2D immutable R-tree with STR (Sort-Tile-Recursive) packing for ultra-fast nearest and intersection queries on plane and spherical surfaces.
    • Reactor - Reactive data applications on the JVM for Java, Groovy, Clojure and other.
    • SmoothieMap - java.util.Map impl with worst put latencies more than 100 times smaller than java.util.HashMap.
    • TraneIO - High-performance implementation of the Future abstraction.
  • Metaprogramming

    • Antlr - Parser generator for reading, processing, executing, or translating structured text or binary files.
    • Apache Calcite - Dynamic data management framework and SQL parser plugin.
    • Checker Framework - Compiler plug-ins that find bugs or verify their absence.
    • Graal - New experimental just-in-time compiler for Java that is integrated with the HotSpot virtual machine.
    • immutables - Generate simple, safe and consistent value objects.
    • javacc - Parser generator for use with Java.
    • JSweet - A transpiler from Java to TypeScript/JavaScript.
    • MPS - Design and build extensible DSLs and editors.
    • lombok - Reduce the amount of boilerplate code that is commonly written for Java classes.
    • Truffle - Framework for implementing languages as simple interpreters.
    • Xtext - Framework for development of programming languages and DSLs.
    • Antlr - Parser generator for reading, processing, executing, or translating structured text or binary files.
    • Apache Calcite - Dynamic data management framework and SQL parser plugin.
    • Checker Framework - Compiler plug-ins that find bugs or verify their absence.
    • GHCVM - A Haskell to JVM compiler that supports GHC Haskell.
    • Graal - New experimental just-in-time compiler for Java that is integrated with the HotSpot virtual machine.
    • JSweet - A transpiler from Java to TypeScript/JavaScript.
    • Truffle - Framework for implementing languages as simple interpreters.
    • Xtext - Framework for development of programming languages and DSLs.
  • Native

    • Project Panama - Enriching the connections between the JVM and APIs used by C programmers.
    • Project Panama - Enriching the connections between the JVM and APIs used by C programmers.
  • Network

    • gRPC - A high performance, open source, general RPC framework that puts mobile and HTTP/2 first.
    • Netty - Async event-driven network library for high performance protocol servers & clients.
    • okhttp - An HTTP+HTTP/2 client for Android and Java applications.
    • RSocket - RSocket is a binary protocol for use on byte stream transports such as TCP, WebSockets, and Aeron.
    • tcpdump - Packet analyzer for network traffic capture.
    • gor - HTTP traffic replay in real-time.
    • gRPC - A high performance, open source, general RPC framework that puts mobile and HTTP/2 first.
    • Netty - Async event-driven network library for high performance protocol servers & clients.
    • RSocket - RSocket is a binary protocol for use on byte stream transports such as TCP, WebSockets, and Aeron.
    • tcpdump - Packet analyzer for network traffic capture.
    • gor - HTTP traffic replay in real-time.
  • Nix tools

    • atoptool - Logging of system and process activity for long-term analysis, highlighting overloaded system.
    • Flame Graphs - Visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately.
    • javap - Disassembles class files into code that reflects the java bytecode.
    • jhat - Java Heap Analysis Tool
    • jhsdb - Launch a postmortem debugger to analyze the content of a core-dump from a crashed JVM.
    • jinfo - Prints configuration information for a given process.
    • jstack - Prints stack traces of threads for a given Java process.
    • jstat - Monitors GC and compiler statistics in the JVM.
    • hwloc - Reports the structure of the processor, number of cores, hyperthreads and cache size.
    • numactl - Control NUMA policy for processes or shared memory.
    • oprofile - System-wide hardware performance monitoring with easy-to-use interface at low overhead.
    • perf - Linux profiling with performance counters.
    • sysstat - Performance monitoring tools for Linux.
    • taskset/process-affinity - Retrieve or set a processes’s CPU affinity.
    • tiptop - Like top but also shows instructions per cycle (IPC).
    • atoptool - Logging of system and process activity for long-term analysis, highlighting overloaded system.
    • Flame Graphs - Visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately.
    • javap - Disassembles class files into code that reflects the java bytecode.
    • jhat - Java Heap Analysis Tool
    • jinfo - Prints configuration information for a given process.
    • jstack - Prints stack traces of threads for a given Java process.
    • hwloc - Reports the structure of the processor, number of cores, hyperthreads and cache size.
    • numactl - Control NUMA policy for processes or shared memory.
    • oprofile - System-wide hardware performance monitoring with easy-to-use interface at low overhead.
    • sysstat - Performance monitoring tools for Linux.
    • oprofile - System-wide hardware performance monitoring with easy-to-use interface at low overhead.
    • numactl - Control NUMA policy for processes or shared memory.
    • sysstat - Performance monitoring tools for Linux.
    • sysstat - Performance monitoring tools for Linux.
    • hwloc - Reports the structure of the processor, number of cores, hyperthreads and cache size.
    • sysdig - Capture system state and activity from a running Linux instance, then save, filter and analyze.
  • Profilers

    • Byteman - tracing, monitoring and testing tool for Java
    • Chronon - Record your entire java program. Replay on any machine.
    • GCeasy - Machine learning guided Garbage collection log analysis tool. Auto-detect problems in the JVM GC logs and recommend solutions to it.
    • hawkshaw - Tools for tracking down memory / JVM problems & generating predictable-as-possible VM behaviour.
    • honest-profiler - Sampling JVM profiler without the safepoint sample bias.
    • Java Flight Recorder (JFR) - Tool for collecting diagnostic and profiling data about a running Java application with almost no performance overhead.
    • jcstress - Experimental harness and tests to aid the research in the correctness of concurrency support in the JVM, class libraries, and hardware.
    • jHiccup - jHiccup is an open source tool designed to measure the pauses and stalls associated with an application’s underlying Java runtime platform.
    • jmh - Micro benchmarks written in Java and other languages targetting the JVM.
    • JOL - Analyze actual object layout schemes, footprint, and references in JVMs.
    • JProfiler - Helps resolve performance bottlenecks, pin down memory leaks and understand threading issues.
    • JVMTI - Provide a native API to inspect the state and to control the execution of applications running in the JVM.
    • MAT - Java heap analyzer that help find memory leaks and reduce memory consumption.
    • leakcanary - A memory leak detection library for Android and Java.
    • metrics - Measure the behavior of critical components in production environment.
    • osquery - osquery is an instrumentation framework that expose the operating system as a high-performance relational database.
    • Overseer - Low-Level Hardware Monitoring and Management for Java.
    • OpenTracing - A vendor-neutral open standard for distributed tracing.
    • Takipi - Tells you when and why code breaks in production.
    • Tracer - Manages custom trace identifiers and carries them through distributed systems.
    • YourKit - Fully featured, easy to use, low overhead profiler.
    • async-profiler - Sampling CPU profiler for Java featuring AsyncGetCallTrace + perf_events.
    • BTrace - a safe, dynamic tracing tool for the Java platform.
    • Byteman - tracing, monitoring and testing tool for Java
    • Chronon - Record your entire java program. Replay on any machine.
    • GCeasy - Machine learning guided Garbage collection log analysis tool. Auto-detect problems in the JVM GC logs and recommend solutions to it.
    • honest-profiler - Sampling JVM profiler without the safepoint sample bias.
    • jcstress - Experimental harness and tests to aid the research in the correctness of concurrency support in the JVM, class libraries, and hardware.
    • jHiccup - jHiccup is an open source tool designed to measure the pauses and stalls associated with an application’s underlying Java runtime platform.
    • jmh - Micro benchmarks written in Java and other languages targetting the JVM.
    • JOL - Analyze actual object layout schemes, footprint, and references in JVMs.
    • MAT - Java heap analyzer that help find memory leaks and reduce memory consumption.
    • metrics - Measure the behavior of critical components in production environment.
    • OpenTracing - A vendor-neutral open standard for distributed tracing.
    • perf-map-agent - Generate method mappings to use with the linux `perf` tool.
    • Takipi - Tells you when and why code breaks in production.
    • Tracer - Manages custom trace identifiers and carries them through distributed systems.
  • People

  • Runtimes

    • CRaSH - The shell for the Java Platform.
    • Nailgun - Nailgun is a client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead.
    • Nailgun - Nailgun is a client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead.
  • Virtual Machines

    • Dalvik - Android runtime (ART) is the managed runtime used by applications and some system services on Android.
    • DCEVM - Modification of Java HotSwap VM with unlimited support for reloading classes at runtime.
    • HotSpot - HotSpot virtual machine maintained and distributed by Oracle Corporation.
    • IBM J9 - JVM developed by IBM.
    • ParparVM - An Open Source Java bytecode to C translator for iOS native development. Designed as a part of the [Codename One](https://www.codenameone.com/) WORA for mobile project.
    • Zing - The only JVM that eliminates Java garbage collection pauses for large heap sizes.
    • Zulu - The only certified multi-platform build of OpenJDK: Free, 100% open source Java.
    • Dalvik - Android runtime (ART) is the managed runtime used by applications and some system services on Android.
    • DCEVM - Modification of Java HotSwap VM with unlimited support for reloading classes at runtime.
    • HotSpot - HotSpot virtual machine maintained and distributed by Oracle Corporation.
    • IBM J9 - JVM developed by IBM.
    • Eclipse OpenJ9 - Eclipse OpenJ9.
    • Zing - The only JVM that eliminates Java garbage collection pauses for large heap sizes.
    • Zulu - The only certified multi-platform build of OpenJDK: Free, 100% open source Java.
  • Documentation

  • Communities

  • Media