📋
Tüm Yabancı Kaynaklar
Java framework, paket ve yazılımları hakkında tüm yabancı kaynaklar (awesome java)
Frameworks that ease bean mapping.
- dOOv - Provides fluent API for typesafe domain model validation and mapping. It uses annotations, code generation and a type safe DSL to make bean validation and mapping fast and easy.
- Dozer - Mapper that copies data from one object to another using annotations and API or XML configuration.
- JMapper - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration.
- MapStruct - Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach.
- Orika - JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another.
- reMap - Lambda and method handle-based mapping which requires code and not annotations if objects have different names.
Tools that handle the build cycle and dependencies of an application.
- Apache Maven - Declarative build and dependency management that favors convention over configuration. It might be preferable to Apache Ant, which uses a rather procedural approach and can be difficult to maintain.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
Libraries to manipulate bytecode programmatically.
Libraries that provide caching facilities.
Libraries for everything related to the CLI.
- JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- Jexer - Advanced console (and Swing) text user interface (TUI) library, with mouse-draggable windows, built-in terminal window manager, and sixel image support. Looks like Turbo Vision.
- picocli - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
Frameworks that can dynamically manage applications inside of a cluster.
- Singularity - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
Tools that provide metrics and quality measurements.
Frameworks and tools that enable code coverage metrics collection for test suites.
Tools that generate patterns for repetitive code in order to reduce verbosity and error-proneness.
Frameworks that help to create parsers, interpreters or compilers.
Libraries that provide external configuration.
- centraldogma - Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
Libraries that help with implementing optimization and satisfiability problems.
Frameworks and libraries that simplify reading/writing CSV data.
- uniVocity-parsers - One of the fastest and most feature-complete parsers. Also comes with parsers for TSV and fixed-width records.
Everything that simplifies interactions with the database.
- Apache Phoenix - High-performance relational database layer over HBase for low-latency applications.
- FlexyPool - Brings metrics and failover strategies to the most common connection pooling solutions.
- Liquibase - Database-independent library for tracking, managing and applying database schema changes.
- MapDB - Embedded database engine that provides concurrent collections backed on disk or in off-heap memory.
- requery - A modern, lightweight but powerful object mapping and SQL generator. Easily map to or create databases, or perform queries and updates from any Java-using platform.
- sql2o - Thin JDBC wrapper that simplifies database access and provides simple mapping of ResultSets to POJOs.
Efficient and specific data structures.
- Apache Avro - Data interchange format with dynamic typing, untagged data, and absence of manually assigned IDs.
- Apache Parquet - Columnar storage format based on assembly algorithms from Google's paper on Dremel.
- HyperMinHash-java - Probabilistic data structure for computing union, intersection, and set cardinality in loglog space.
Libraries related to handling date and time.
Augmentation of the development process at a fundamental level.
- DCEVM - JVM modification that allows unlimited redefinition of loaded classes at runtime. (GPL-2.0-only)
- Faux Pas - Library that simplifies error handling by circumventing the issue that none of the functional interfaces in the Java Runtime is allowed by default to throw checked exceptions.
- Manifold - Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods.
- NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
- SneakyThrow - Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations.
Libraries and frameworks for writing distributed and fault-tolerant applications.
- Apache Geode - In-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery.
- Apache ZooKeeper - Coordination service with distributed configuration, synchronization, and naming registry for large distributed systems.
- Zuul - A gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
Distributed transactions provide a mechanism for ensuring consistency of data updates in the presence of concurrent access and partial failures.
- Narayana - Provides support for traditional ACID and compensation transactions, also complies with JTA, JTS and other standards. (LGPL-2.1-only)
Tools that handle the distribution of applications in native formats.
- Boxfuse - Deployment of JVM applications to AWS using the principles of immutable infrastructure.
- Capsule - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
- Central Repository - Largest binary component repository available as a free service to the open-source community. Default used by Apache Maven, and available in all other build tools.
Libraries that assist with processing office document formats.
- zerocell - Annotation-based API for reading data from Excel sheets into POJOs with focus on reduced overhead.
Formal-methods tools: proof assistants, model checking, symbolic execution, etc.
- Checker Framework - Pluggable type systems. Includes nullness types, physical units, immutability types and more. (GPL-2.0-only WITH Classpath-exception-2.0)
- Java Path Finder (JPF) - JVM formal verification tool containing a model checker and more. Created by NASA.
- JMLOK 2.0 - Detects inconsistencies between code and JML specification through feedback-directed random tests generation, and suggests a likely cause for each nonconformance detected. (GPL-3.0-only)
- KeY - Formal software development tool that aims to integrate design, implementation, formal specification, and formal verification of object-oriented software as seamlessly as possible. Uses JML for specification and symbolic execution for verification. (GPL-2.0-or-later)
- OpenJML - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers. (GPL-2.0-only)
Libraries that facilitate functional programming.
- cyclops-react - Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more.
- derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching and morphisms. (GPL-3.0-only)
- Functional Java - Implements numerous basic and advanced programming abstractions that assist composition-oriented development.
- jOOλ - Extension to Java 8 that aims to fix gaps in lambda by providing numerous missing types and a rich set of sequential Stream API additions.
- Vavr - Functional component library that provides persistent data types and functional control structures.
Frameworks that support the development of games.
Libraries for working with geospatial data and algorithms.
- Geotoolkit.org - Library for developing geospatial applications. Built on top of the Apache SIS project. (LGPL-2.1-only)
Libraries to create modern graphical user interfaces.
Everything about high-performance computation, from collections to specific libraries.
Libraries that assist with creating HTTP requests and/or binding responses.
- Armeria - Asynchronous RPC/REST client/server library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC.
Libraries that handle serialization to hypermedia types.
Integrated development environments that try to simplify several aspects of development.
- IntelliJ IDEA - Supports many JVM languages and provides good options for Android development. The commercial edition targets the enterprise sector.
- jGRASP - Created to provide software visualizations that work in conjunction with the debugger such as Control Structure Diagrams, UML class diagrams and Object Viewer.
- NetBeans - Provides integration for several Java SE and EE features, from database access to HTML5.
- Visual Studio Code - Provides Java support for lightweight projects with a simple, modern workflow by using extensions from the internal marketplace.
Libraries that assist with the creation, evaluation or manipulation of graphical images.
- Imgscalr - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
- image-comparison - Compares two images with the same sizes and shows the differences visually by drawing rectangles.
Libraries that help make the Java introspection and reflection API easier and faster to use.
- ClassGraph - ClassGraph (formerly FastClasspathScanner) is an uber-fast, ultra-lightweight, parallelized classpath scanner and module scanner for Java, Scala, Kotlin and other JVM languages.
- jOOR - jOOR stands for jOOR Object Oriented Reflection. It is a simple wrapper for the java.lang.reflect package.
- Mirror - Mirror was created to bring light to a simple problem, usually named ReflectionUtil, which is on almost all projects that rely on reflection to do advanced tasks.
- Objenesis - Allows dynamic instantiation without default constructor, e.g. constructors which have required arguments, side effects or throw exceptions.
- ReflectASM - ReflectASM is a very small Java library that provides high performance reflection by using code generation.
- Reflections - Reflections scans your classpath, indexes the metadata, allows you to query it on runtime and may save and collect that information for many modules within your project.
Libraries for scheduling background jobs.
- Quartz - Feature-rich, open source job scheduling library that can be integrated within virtually any Java application.
Libraries for serializing and deserializing JSON to and from Java objects.
- Jackson-datatype-money - Open-source Jackson module to support JSON serialization and deserialization of JavaMoney data types.
- Jackson - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
- LoganSquare - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.
Libraries for processing data in JSON format.
Current implementations of the JVM/JDK.
- Corretto - No-cost, multiplatform, production-ready distribution of OpenJDK by Amazon. (GPL-2.0-only WITH Classpath-exception-2.0)
- Liberica JDK - Built from OpenJDK, thoroughly tested and passed the JCK. (GPL-2.0-only WITH Classpath-exception-2.0)
- OpenJ9 - High performance, enterprise-calibre, flexibly licensed, openly-governed cross-platform JVM extending and augmenting the runtime technology components from the Eclipse OMR and OpenJDK project.
- ParparVM - VM with non-blocking, concurrent GC for iOS. (GPL-2.0-only WITH Classpath-exception-2.0)
- SAP Machine - SAP's no-cost, rigorously tested and JCK-verified OpenJDK friendly fork. (GPL-2.0-only WITH Classpath-exception-2.0)
- Zulu - OpenJDK builds for Windows, Linux, and Mac OS X. (GPL-2.0-only WITH Classpath-exception-2.0)
Libraries that log the behavior of an application.
- Graylog - Open-source aggregator suited for extended role and permission management. (GPL-3.0-only)
Tools that provide specific statistical algorithms for learning from data.
- Apache Mahout - Scalable algorithms focused on collaborative filtering, clustering and classification.
- DeepDive - Creates structured information from unstructured data and integrates it into an existing database.
- JSAT - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution. (GPL-3.0-only)
- Oryx 2 - Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering.
- Smile - The Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library.
- Weka - Collection of algorithms for data mining tasks ranging from pre-processing to visualization. (GPL-3.0-only)
Tools that help send messages between clients to ensure protocol independency.
- Apache ActiveMQ - Message broker that implements JMS and converts synchronous to asynchronous communication.
- Apache Qpid - Apache Qpid makes messaging tools that speak AMQP and support many languages and platforms.
Everything else.
- Codename One - Cross-platform solution for writing native mobile apps. (GPL-2.0-only WITH Classpath-exception-2.0)
- FizzBuzz Enterprise Edition - No-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes. (No explicit license)
- Maven Wrapper - Analogue of Gradle Wrapper for Maven, allows building projects without installing maven.
- Multi-OS Engine - An open-source, cross-platform engine to develop native mobile (iOS, Android, etc.) apps.
- OpenRefine - Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases.
- Polyglot for Maven - Extensions for Maven 3.3.1+ that allows writing the POM model in dialects other than XML.
- Smooks - Extensible framework for building applications that process data which means bindings, transformations, message processing and enrichment. (LGPL-3.0-only)
Tools for creating and managing microservices.
- consul-api - Client for the Consul API: a distributed, highly available and datacenter-aware registry/discovery service.
- Helidon - Two-style approach for writing microservices: Functional-reactive and as an implementation of MicroProfile.
- Micronaut - Modern full-stack framework with focus on modularity, minimal memory footprint and startup time.
Tools that monitor applications in production.
- Failsafe Actuator - Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot environment.
- inspectIT - 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.
- Instrumental - Real-time Java application performance monitoring. A commercial service with free development accounts.
- 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.
- zipkin - Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures.
For working with platform-specific native libraries.
- JNA - Work with native libraries without writing JNI. Also provides interfaces to common system libraries.
- JNR - Work with native libraries without writing JNI. Also provides interfaces to common system libraries. Same goals as JNA, but faster, and serves as the basis for the upcoming Project Panama.
Libraries that specialize in processing text.
Libraries for building network servers.
- 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.
- KryoNet - Provides a clean and simple API for efficient TCP and UDP client/server network communication using NIO and Kryo.
- MINA - Abstract, event-driven async I/O API for network operations over TCP/IP and UDP/IP via Java NIO.
- ServiceTalk - Framework built on Netty with APIs tailored to specific protocols and support for multiple programming paradigms.
- TLS Channel - Implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS.
- Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
APIs that handle the persistence of objects.
- Apache Cayenne - Provides a clean, static API for data access. Also includes a GUI Modeler for working with database mappings, and DB reverse engineering and generation.
- Doma 2 - Database access framework that verifies and generates source code at compile time using annotation processing as well as native SQL templates called two-way SQL.