Awesome系列的Java资源整理。awesome-java 就是akullpp发起维护的Java资源列表,内容包括:构建工具、数据库、框架、模板、安全、代码分析、日志、第三方库、书籍、Java 站点等等。
业务流程管理套件
流程驱动的软件系统构建,中间件。
- jBPM:非常灵活的业务流程管理框架,致力于构建开发与业务分析人员之间的桥梁。 官网
- Activiti:新一代的开源 BPM 引擎,核心是基于 Java 的超快速、超稳定的 BPMN 2.0 流程引擎,强调流程服务的可嵌入性和可扩展性。 官网 下载
经典的工具与库 (Ancients)
In existence since the beginning of time and which will continue being used long after the hype has waned.自从一开始就存在,并且在炒作已经消失之后将继续使用。
- Apache Ant -使用XML构建流程管理。
- Apache Hadoop - 商品硬件集群数据集的存储和大规模处理。
- Apache OpenNLP - 用于常见任务(如标记化)的工具包。
- Apache Velocity -一般HTML页面,电子邮件或源代码生成的模板。
- FreeMarker -一般模板引擎没有任何重量级或意见依赖。
- GlassFish - Oracle支持的Java EE的应用服务器和参考实现。
- GWT - 工具箱包括客户端代码的Java到JavaScript编译器,XML解析器,RPC的API,JUnit集成,GUI的国际化支持和小部件。
- HornetQ -清晰,简洁,模块化,并被嵌入。
- Hudson - 持续集成服务器仍在积极发展。
- Java Modeling Language (JML) - 行为接口规范语言,可用于指定代码模块的行为。 它结合了埃菲尔的合同方式的设计和界面规范语言的Larch系列的基于模型的规范方法,以及细化演算的一些要素。 由其他几种验证工具使用。
- JavaCC - 更具体,稍微更容易学习。
- JavaServer Faces - Oracle的开源实施JSF标准,Mojarra。
- JavaServer Pages - 具有自定义标签库的网站的常用模板。
- JUnit - 通用测试框架。
- Launch4j - 将JAR包装在轻量级和本机Windows可执行文件中。
- Quartz - 具有Apache 2.0许可证的开源作业调度程序库。
- TestNG - 测试框架。
- Trove - 原始集合
Bean映射 (Bean Mapping)
Frameworks that ease bean mapping.简化Bean映射的框架。
- Dozer - 使用注释,API或XML配置将数据从一个对象复制到另一个对象的映射器。
- JMapper - 使用字节码操作进行闪电快速映射。 支持注释,API或XML配置。
- MapStruct - 代码生成器,它简化了不同bean类型之间的映射,基于配置方法的约定。
- ModelMapper -ModelMapper是一个智能对象映射库,可自动映射对象。
- Orika - Orika是一个Java Bean映射框架,它将数据从一个对象递归到另一个对象.
- Selma - 愚蠢简单的静态链接映射器。 Selma是一个基于注释处理器的bean映射器。
构建工具 (Build)
Tools which handle the build cycle and dependencies of an application.处理应用程序的构建周期和依赖关系的工具。
- Apache Maven - 声明式构建和依赖关系管理,有利于配置的约定。 可能更喜欢Apache Ant,它使用相当程序的方法,可能难以维护。
- Bazel - 从Google构建工具,快速可靠地构建代码。
- Gradle -通过Groovy编程的增量构建,而不是声明XML。 适用于Maven依赖管理。
字节码操作 (Bytecode Manipulation)
Libraries to manipulate bytecode programmatically.以编程方式操纵字节码的库。
- ASM - 所有目的,低级别,字节码操作和分析。
- Byte Buddy - 进一步简化使用流畅API的字节码生成。
- Byteman - 运行时通过DSL(规则)操作字节码,主要用于测试/故障排除。
- cglib - 字节代码生成库。
- Javassist -试图简化字节码的编辑。
缓存 (Caching)
Libraries which provide caching facilities.提供缓存设施的图书馆。
- Caffeine -高性能,接近最佳缓存库。
- Ehcache - 分布式通用缓存。
群集管理 (Cluster Management)
Frameworks which can dynamically manage applications inside of a cluster.可以动态管理集群内的应用程序的框架。
- Apache Aurora - Apache Aurora是用于长时间运行服务和cron作业的Mesos框架。
- Apache Mesos - 从机器上摘取CPU,内存,存储和其他计算资源。
- Singularity - 奇异性是一种Mesos框架,使部署和操作变得容易。 它支持Web服务,后台工作人员,预定工作和一次性任务。
代码分析 (Code Analysis)
Tools that provide metrics and quality measurements.提供指标和质量测量的工具
- Checkstyle - 编码惯例和标准的静态分析。
- Codacy - 持续的静态分析,代码覆盖率和软件指标,以自动执行代码审查。
- Error Prone -将常见的编程错误视为编译时错误。
- FindBugs - 字节码的静态分析以发现潜在的错误。
- Infer - 产生潜在错误列表的工具。
- jQAssistant - 使用基于Neo4J的查询语言进行静态代码分析。
- PMD - 用于查找不良编码实践的源代码分析。
- SonarQube - 通过插件集成其他分析组件,并随时间提供指标的概述。
- Spoon - 用于分析和转换Java源代码的库。
代码覆盖 (Code Coverage)
Frameworks and tools that enable collection of code coverage metrics for test suites.允许收集测试套件的代码覆盖率指标的框架和工具。
- Clover -Atlassian的专有代码覆盖工具,依赖于源代码检测,而不是字节码检测.
- Cobertura - 依赖离线(或静态)字节码仪器和类加载来收集代码覆盖度量; GPLv2许可
- JaCoCo -使用离线和运行时字节码工具集的代码覆盖率指标的框架; EclEmma,Eclipse代码覆盖插件突出使用。
代码生成 (Code Generators)
Tools that generate patterns for repetitive code in order to reduce verbosity and error-proneness.生成重复代码模式的工具,以减少冗长度和错误倾向。
- ADT4J - 用于代数数据类型的JSR-269代码生成器。
- Auto -生成工厂,服务和价值类。
- FreeBuilder - 自动生成Builder模式。
- Immutables - 注释处理器生成简单,安全和一致的值对象.
- JHipster - 用于Spring Boot和AngularJS的Yeoman源代码生成器。
- Joda-Beans - 小型框架可以将可查询的属性添加到Java中,从而增强JavaBeans.
- Lombok -旨在减少冗长度的代码生成器。
命令行参数解析器 (Command-line Argument Parsers)
Libraries that make it easy to parse command line options, arguments, etc.可以方便地解析命令行选项,参数等的库
- Airline -用于解析Git的基于注释的框架,如命令行参数。
- args4j - 小库来解析类似于javac的参数。
- JCommander -命令行参数通过实现接口解析框架与自定义类型和验证.
- JOpt Simple -使用POSIX getopt()和GNU getopt_long()语法的简单解析器。 不使用注释,而是使用流畅的API。
编译器 (Compiler-compiler)
Frameworks that help to create parsers, interpreters or compilers.有助于创建解析器,解释器或编译器的框架。
- ANTLR -复杂的全功能框架,用于自顶向下的解析。
- JFlex -词汇分析仪
配置 (Configuration)
Libraries that provide external configuration.提供外部配置的库。
- config - JVM语言的配置库。
- ini4j - 提供一个处理Windows的INI文件的API。
- owner - 减少属性样板。
- KAConf - 基于注释的Java和Kotlin配置系统。
约束满足问题求解器(Constraint Satisfaction Problem Solver)
Libraries that help on implementing optimization and satisfiability problems.有助于实现优化和可满足性问题的库。
- Choco - 使用约束编程技术的现成约束满足问题求解器。
- JaCoP -包括FlatZinc语言的界面,使其能够执行MiniZinc模型。
- OptaPlanner - 业务规划和资源调度优化求解器。
持续整合(Continuous Integration)
Tools which support continuously building, testing and releasing applications.支持连续构建,测试和发布应用程序的工具。
- Bamboo -Atlassian的解决方案与其他产品的良好整合。 您可以申请开源许可证或购买。
- Concourse -提供具有可在版本控制中保存的配置的码头化管道。
- fabric8 - 集装箱集成平台。
- Go - ThoughtWorks开源解决方案。
- Jenkins -提供基于服务器的部署服务。
- TeamCity - JetBrains CI解决方案免费版本。
- Travis - 托管服务经常用于开源项目。
(CSV)
Frameworks and libraries that simplify reading/writing CSV data.简化读取/写入CSV数据的框架和库。
- opencsv - 简单的CSV解析器
- Super CSV -强大的CSV解析器,支持Dozer,Joda-Time和Java 8。
- uniVocity-parsers -其中一个速度最快,功能最完整的CSV。 还附带TSV和固定宽度记录的解析器。
数据库(Database)
Everything which simplifies interactions with the database.一切都简化了与数据库的交互。
- Apache Hive -数据仓库基础设施建在Hadoop之上。
- Apache Phoenix - 用于低延迟应用的HBase高性能关系数据库层。
- Chronicle Map - 高效的内存中(选择持久存储到磁盘)非堆栈键值存储。
- eXist - 一个NoSQL文档数据库和应用平台。
- FlexyPool - 为最常见的连接池解决方案提供指标和故障转移策略。
- Flyway - 简单的数据库迁移工具。
- H2 - 小型数据库显示其内存中的功能。
- HikariCP - 高性能JDBC连接池。
- JDBI -JDBC的方便抽象。
- Jedis - 与redis交互的小客户端,具有命令的方法。
- jOOQ -生成基于SQL模式的类型安全代码。
- Liquibase - 数据库独立库,用于跟踪,管理和应用数据库模式更改。
- MapDB -嵌入式数据库引擎,提供在磁盘或非堆内存中支持的并发集合。
- Presto -分布式SQL查询引擎,用于大数据。
- Querydsl -Typesafe统一查询。
- Realm - 移动数据库直接在手机,平板电脑或可穿戴式电脑内部运行。
- Redisson -在Redis服务器之上允许分布式和可扩展的数据结构。
- Speedment - 利用Java 8 Stream API进行查询的数据库访问库。
- sql2o -简化JDBC封装,简化了数据库访问,并简化了将ResultSet映射到POJO。
- Vibur DBCP - 提供高级性能监控功能的JDBC连接池库
数据结构(Data structures)
Efficient and specific data structures.高效和具体的数据结构。
- Apache Avro - 数据交换格式包括动态打字,未标记数据,缺少手动分配的ID。
- Apache Orc -用于基于hadoop的工作负载的快速高效的柱状存储格式。
- Apache Parquet -基于谷歌Dremel的汇编算法的柱状存储格式。
- Apache Thrift -来自Facebook的数据交换格式。
- Persistent Collection -Java Collections框架的持久和不变的模拟。
- Protobuf - Google的数据交换格式
- SBE - 简单的二进制编码,是最快的消息格式之一。
- Wire -清洁,轻便的协议缓冲区。
日期和时间(Date and Time)
Libraries related to handling date and time.与处理日期和时间相关的图书馆。
- Almanac Converter - 不同日历系统之间的简单转换。
- Joda-Time - Java 8之前的事实上的标准日期/时间库。
- ThreeTenBP - Joda-Time作者的JSR 310端口(java.time包)。
- Time4J - 高级日期和时间库。
依赖注入(Dependency Injection)
Libraries that help to realize the Inversion of Control paradigm.有助于实现控制范式反转的图书馆。
- Apache DeltaSpike - CDI扩展框架。
- Dagger2 -无反射的编译时注入框架。
- Guice -轻巧但功能强大的框架,完成匕首。
- HK2 - 轻量级和动态依赖注入框架。
开发(Development)
Augmentation of the development process at a fundamental level.将发展进程扩大到根本层面。
- AspectJ - 无缝面向方面的编程扩展。
- DCEVM - 修改JVM,允许在运行时无限制地重新定义加载的类。
- Faux Pas -通过规避Java运行系统中的任何功能接口默认情况下不允许引发检查异常的问题来简化错误处理的库。
- HotswapAgent -无限运行时类和资源重新定义。
- JRebel - 立即重新加载代码和配置更改,无需重新部署。
- Spring Loaded -类重新加载代理。
分布式应用(Distributed Applications)
Libraries and frameworks for writing distributed and fault-tolerant applications.用于编写分布式和容错应用程序的库和框架。
- Akka -用于构建并发,分布式和容错事件驱动应用程序的工具包和运行时。
- Apache Storm -实时计算系统
- Apache ZooKeeper - 协调服务与大型分布式系统的分布式配置,同步和命名注册表。
- Atomix -容错分布式协调框架。
- Axon Framework - 创建CQRS应用程序的框架。
- Copycat - 容错状态机复制框架。
- Hazelcast - 高度可扩展的内存数据网格。
- Hystrix - 提供延迟和容错。
- JGroups - 用于可靠消息传递和创建集群的工具包。
- Orbit - 虚拟演员,为传统演员增添了另一个抽象层次。
- Quasar -用于JVM的轻量级线程和actors。
分布式数据库(Distributed Databases)
Databases in a distributed system that appear to applications as a single data source.分布式系统中的应用程序显示为单个数据源的数据库。
- Apache Cassandra - 面向列,提供高可用性,无单点故障。
- Apache HBase -Hadoop数据库用于大数据。
- Druid -实时和历史的OLAP数据存储,优于聚合和近似查询。
- Infinispan - 用于缓存的高度并发键/值数据存储。
- OpenTSDB -可扩展和分布式的时间序列数据库写在Apache HBase之上。
- OrientDB -嵌入式分布式数据库写在Hazelcast之上。
分发(Distribution)
Tools which handle the distribution of applications in native formats.以原生格式处理应用程序分发的工具。
- Bintray -处理发布的二进制文件的版本控制。 也可以与Maven或Gradle一起使用,并提供开源软件或几项业务计划的免费计划。
- Boxfuse -使用Immutable Infrastructure的原理将JVM应用程序部署到AWS。
- Capsule -简单而强大的包装和部署。 类固醇上的脂肪JAR或支持JVM优化容器的“Docker for Java”。
- Central Repository - 最大的二进制组件存储库可作为开源社区的免费服务。 Apache Maven使用的默认值,可用于所有其他构建工具。
- IzPack -用于跨平台部署的安装程序创作工具。
- JitPack -易于使用的GitHub软件包存储库。 根据需要构建Maven / Gradle项目,并发布即用型软件包。
- Nexus - 具有代理和缓存功能的二进制管理。
- packr -在Windows,Linux和Mac OS X上打包JAR,资产和本机分发的JVM。
- really-executable-jars-maven-plugin - 用于自行执行JAR的Maven插件。
文件处理(Document Processing)
Libraries that assist with processing office document formats.协助处理办公文件格式的图书馆。
- Apache POI - 支持OOXML(XLSX,DOCX,PPTX)以及OLE2(XLS,DOC或PPT)。
- documents4j - 使用第三方转换器(如MS Word)进行文档格式转换的API。
- docx4j - 创建和操作Microsoft Open XML文件。
格式验证(Formal Verification)
Formal-methods tools: proof assistants, model checking, symbolic execution etc.正式方法工具:证明助理,模型检查,符号执行等
- CATG -卷积单元测试引擎。 使用正式方法自动生成单元测试。
- Checker Framework - 可插拔式系统。 包括无效类型,物理单位,不变性类型等。
- Daikon - Daikon检测可能的程序不变量,并可以根据这些invariats生成JML规范。
- Java Path Finder (JPF) - 包含模型检查器的JVM形式验证工具等。 由NASA创建..
- JMLOK 2.0 -通过反馈导向的随机测试生成检测代码和JML规范之间的不一致,并建议检测到每个不一致的可能.
- KeY - KeY系统是一种正式的软件开发工具,旨在尽可能无缝地集成面向对象软件的设计,实现,形式规范和形式验证。 使用JML进行规范和符号执行来进行验证。
- OpenJML - 将JML规范转换为SMT-LIB格式,并将程序隐含的证明问题传递给后端求解器
功能编程(Functional Programming)
Libraries that facilitate functional programming.促进功能编程的库。
- cyclops-react - Monad和流实用程序,理解,模式匹配,所有JDK集合的功能扩展,未来流,蹦床等等。
- derive4j - Java 8注解处理器和用于导出代数数据类型构造函数,模式匹配,态射的框架。
- Fugue - 功能延伸
- Functional Java - 实现许多基础和高级编程抽象,有助于面向组件的开发。
- Javaslang - 提供持久数据类型和功能控制结构的功能组件库。
- jOOλ - 扩展到Java 8,其目的是解决lambda中的差距,提供大量缺失类型和丰富的一系列顺序Stream API添加。.
- protonpack - 流实用程序的集合
- StreamEx - 增强Java 8流。
游戏开发(Game Development)
Frameworks that support the development of games.支持游戏开发的框架。
- jMonkeyEngine - 用于现代3D开发的游戏引擎。
- libGDX - 全面跨平台,高层次框架。
- LWJGL - 强大的框架,可以抽象出OpenGL / CL / AL等库。
地理空间(Geospatial)
Libraries for working with geospatial data and algorithms.用于处理地理空间数据和算法的库。
- Apache SIS - 图书馆开发地理空间应用
- Geo - Java中的GeoHash实用程序
- Geotoolkit.org -
翻译时出错用于开发地理空间应用的图书馆。 建立在Apache SIS项目的顶部
- GeoTools - 为地理空间数据提供工具的图书馆。
- GraphHopper - 道路引擎引擎。 用作Java库或独立Web服务。
- H2GIS - H2数据库的空间扩展。
- Jgeohash - 可以帮助Java开发人员使用GeoHash算法的库。
- Mapsforge - 基于OpenStreetMap数据渲染地图的软件。
- Spatial4j - 通用空间/地理空间ASL许可的开源Java库。
图形用户界面(GUI)
Libraries to create modern graphical user interfaces.图书馆创建现代图形用户界面。
- JavaFX - 摇摆不定的继承人
- Scene Builder - JavaFX应用程序的可视化布局工具。
- SWT -标准窗口小部件工具包(SWT)是一个用于Java平台的图形窗口小部件工具包。
高性能(High Performance)
Everything about high performance computation, from collections to specific libraries.关于高性能计算的一切,从集合到特定的库。
- Agrona -高性能应用中常见的数据结构和实用方法。
- Disruptor - 跨线程消息传递库。
- Eclipse Collections - 集合框架灵感来自于Smalltalk。
- fastutil - 快速和紧凑的类型特定的集合.
- HPPC - 原始集合。
- JCTools -JDK目前缺少并发工具。
- Koloboke -哈希集和散列图。
超媒体类型(Hypermedia Types)
Libraries that handle serialization to hypermedia types.处理对超媒体类型的序列化的库。
- JSON-LD -JSON-LD实现..
- Siren4J - 警报器规格库。
集成开发环境(IDE)
Integrated development environments that try to simplify several aspects of development.集成开发环境,试图简化开发的几个方面。
- Eclipse -成立的开源项目,支持大量的插件和语言。
- IntelliJ IDEA -支持很多JVM语言,为Android开发提供了很好的选择。 商业版针对企业部门
- NetBeans - 提供从数据库访问到HTML5的多个Java SE和EE功能的集成。
图像处理(Imagery)
Libraries that assist with the creation, evaluation or manipulation of graphical images.协助创建,评估或操纵图形图像的图书馆。
- Imgscalr - 在纯Java 2D中实现的简单高效的硬件加速映像扩展库。
- Tess4J - Tesseract OCR API的JNA包装器。
- Thumbnailator - 缩略图是Java的高质量缩略图生成库。
- TwelveMonkeys - 收集扩展支持的图像文件格式数量的插件。
- ZXing -多格式1D / 2D条形码图像处理库。
(JSON)
Libraries for serializing and deserializing JSON to and from Java objects.用于将JSON序列化和反序列化为Java对象的库。
- Genson - 强大而易用的Java到JSON转换库。
- Gson - 将对象序列化为JSON,反之亦然。 良好的性能与即时使用。
- Jackson-datatype-money - 开源的杰克逊模块支持JavaMoney数据类型的JSON序列化和反序列化。
- Jackson -与GSON类似,但如果您需要更频繁地实例化库,则性能将会得到提升。
- JSON-io -将Java转换为JSON。 将JSON转换为Java。 漂亮的打印JSON。 Java JSON序列化程序.
- LoganSquare - 基于Jackson流式API的JSON解析和序列化库。 优于GSON&Jackson的图书馆。
JSON处理(JSON Processing)
Libraries for processing data in JSON format.以JSON格式处理数据的库。
- fastjson - 非常快的处理器,无需额外的依赖关系和完整的数据绑定。
- Jolt -JSON到JSON转换工具。
- JsonPath - 使用XPATH类似语法从JSON中提取数据。
- JsonSurfer - Streaming JsonPath处理器专用于处理大而复杂的JSON数据。
虚拟机与Java开发工具(JVM and JDK)
Current implementations of the JVM/JDK.JVM / JDK的当前实现。
- Avian - JVM具有JIT和AOT模式。 包括一个iOS端口。
- JDK 9 -早期访问版本的JDK 9。
- OpenJDK - Linux的开源实现。
- ParparVM -虚拟机与iOS的非阻塞并发GC。
- Zulu OpenJDK 9 - 早期访问OpenJDK 9构建用于Windows,Linux和Mac OS X.
- Zulu OpenJDK -OpenJDK通过Java 8构建Windows,Linux和Mac OS X。
日志(Logging)
Libraries that log the behavior of an application.记录应用程序行为的库。
- Apache Log4j 2 - 用强大的插件和配置架构完成重写。
- Graylog - 适合扩展角色和权限管理的开源聚合器。
- Kibana - 分析和可视化日志文件。 某些功能需要付款。
- Logback - 通过Groovy有趣的配置选项的强大的日志库.
- Logbook - 可扩展的开源库,用于HTTP请求和响应日志记录。
- Logstash -用于管理日志文件的工具。
- SLF4J -与实现一起使用的抽象层。
- tinylog -具有静态记录器类的轻量级日志框架。
- Tracer - 在分布式系统中调用跟踪和日志关联。
机器学习(Machine Learning)
Tools that provide specific statistical algorithms which allow learning from data.提供允许从数据学习的特定统计算法的工具。
- Apache Flink - 快速可靠的大型数据处理引擎。
- Apache Mahout - 可扩展算法侧重于协同过滤,聚类和分类。
- Apache Spark - 数据分析集群计算框架。
- DeepDive - 从非结构化数据创建结构化信息并将其集成到现有数据库中。
- Deeplearning4j -分布式多线程深层学习库。
- H2O -用于统计大数据的分析引擎。
- JSAT - 用于预处理,分类,回归和聚类的算法,支持多线程执行。
- Oryx 2 -构建实时大型机器学习应用程序的框架,其中还包括用于协同过滤,分类,回归和聚类的端到端应用程序。
- Smile - 统计机器智能和学习引擎提供了一套机器学习算法和可视化库。
- Weka - 收集从预处理到可视化的数据挖掘任务的算法
消息(Messaging)
Tools that help to send messages between clients in order to ensure protocol independency.帮助客户端发送消息的工具,以确保协议的独立性。
- Aeron - 高效可靠的单播和组播消息传输。
- Apache ActiveMQ -实现JMS并将异步通信同步转换的消息代理。
- Apache Camel - 通过企业集成模式将不同的运输API粘合在一起
- Apache Kafka -高吞吐量分布式消息系统。
- Hermes -快速可靠的消息代理建立在卡夫卡之上。
- JeroMQ - ZeroMQ的实现。
- Nakadi -在Kafka之上提供一个RESTful API。
- RocketMQ -快速,可靠,可扩展的分布式消息平台。
- Smack - 跨平台XMPP客户端库。
其它(Miscellaneous)
Everything else.其他一切
- Codename One - 用于编写原生手机的跨平台解决方案(iOS,Android等)
- CQEngine -Java集合上的超快SQL类查询。
- Design Patterns - 实现和解释最常见的设计模式。
- Failsafe -简单的故障处理与重试和断路器。
- J2ObjC - Java到Objective-C翻译器,用于将Android库移植到iOS。
- jabba - Java版本管理器灵感来自nvm。
- javaslang-circuitbreaker - 功能容错库。
- JBake -静态网站生成器
- Jimfs - 内存文件系统。
- Joda-Money - JDK提供的基本货币和金钱类别和算法。
- JPad - 代码片段
- Lanterna - 简单的控制台文本GUI库类似于诅咒。
- LightAdmin - 可插拔的CRUD UI库,用于快速开发应用程序。
- Membrane Service Proxy - 一个开源的反向代理框架,用Java编写。
- Modern Java - A Guide to Java 8 - 热门Java 8指南。
- Modernizer - 检测传统Java API的使用。
- OpenRefine - 用于处理凌乱数据的工具:清理,转换,使用Web服务扩展它并将其链接到数据库.
- TypeTools - 解决通用类型的工具。
微服务(Microservice)
Tools for managing microservices, i.e. creation, coordination or discovery.用于管理微服务的工具,即创建,协调或发现。
- Apollo -用于撰写可组合的微服务的图书馆。
- consul-api - Consul API的客户端是分布式,高可用性和数据中心感知的注册表/发现服务。
- Eureka -基于REST的服务注册表,用于弹性负载平衡和故障转移。
- Lagom - 创建基于微服务系统的框架。
- SnopEE -Java EE微服务的发现服务
监控(Monitoring)
Tools that monitor applications in production.监控生产中的应用程序的工具。
- AppDynamics - 性能监视器
- Glowroot - 开源Java APM。
- JavaMelody -性能监控和分析。
- jmxtrans - 连接到多个JVM并通过JMX查询它们的属性的工具。 其查询语言基于JSON,允许非Java程序员访问JVM属性。 同样,此工具支持不同的输出写入,包括Graphite,Ganglia,StatsD等。
- Jolokia - JMX over REST.
- Kamon - 用于监视在JVM上运行的应用程序的工具。
- Metrics -通过JMX或HTTP公开指标,并将其发送到数据库。
- New Relic - 性能监视器
- OverOps - 生产中错误监控和调试。
- Pinpoint -开源APM工具..
- Prometheus - 提供多维数据模型,DSL,自主服务器节点等等。
- SPM - 性能监视器,用于为JVM应用程序分发事务跟踪。
- Stagemonitor - JVM应用程序的开源性能监控和事务跟踪。
本地化(Native)
For working with platform-specific native libraries.用于平台特定的本机库。
- JNA - 在不编写JNI的情况下与本地库一起工作。 还提供了通用系统库的接口
- JNR - 在不编写JNI的情况下与本地库一起工作。 还提供了通用系统库的接口。 与JNA相同的目标,但更快,并作为即将到来的基础Project Panama.
自然语言处理(Natural Language Processing)
Libraries that specialize on processing text.专门处理文本的图书馆。
- CoreNLP -斯坦福大学的CoreNLP为标签,命名实体识别,情绪分析等诸多功能提供了一套基础工具。
- DKPro - 用于语言预处理,机器学习,词汇资源等的可重用NLP工具的集合
- LingPipe - 工具包,用于从POS标签到情绪分析的各种任务。
网络编程(Networking)
Libraries for network programming.网络编程库。
- Async Http Client - LibAsynchronous HTTP和WebSocket客户端库。
- Comsat - 将标准的Java Web相关API与Quasar光纤和演员集成。
- Finagle - 用于构建高并发服务器的可扩展RPC系统。 它为多个协议实现统一的客户端和服务器API,并且是协议无关的,这简化了新协议的实现。
- Grizzly - NIO框架。 在Glassfish中用作网络层。
- gRPC - 基于protobuf和HTTP / 2的RPC框架。
- MINA -抽象事件驱动的异步I / O API,用于通过Java NIO进行TCP / IP和UDP / IP的网络操作。
- Netty - 构建高性能网络应用程序的框架。
- Nifty - 在Netty上实施Thrift客户端和服务器。
- OkHttp - HTTP + SPDY客户端。
- Riptide - Spring的RestTemplate的客户端响应路由。
- Undertow - Web服务器提供基于NIO的阻塞和非阻塞API。 在WildFly中用作网络层
- urnlib -用于表示,解析和编码URN的Java库,如RFC 2141 ...
对象关系映射(ORM)
APIs which handle the persistence of objects.处理对象持久性的API。
- Ebean - 提供简单快速的数据访问。
- EclipseLink - 支持一些持久性标准:JPA,JAXB,JCA和SDO。
- Hibernate - 强大而广泛地应用于活跃的社区。
- MyBatis - 夫妻对象与存储过程或SQL语句。
(PaaS)
Java platform as a service.Java平台即服务。
- AWS Elastic Beanstalk - 基于AWS,支持Tomcat和Jetty。
- AWS Lambda - 无服务器计算。
- Google App Engine - PaaS在Google的基础架构上。
- Heroku - 抽象计算环境。
- Jelastic -支持Tomcat,Jetty,GlassFish,JBoss,TomEE和WildFly。
- OpenShift Enterprise -在内部解决方案
(PDF)
Everything that helps with the creation of PDF files.一切有助于创建PDF文件的东西。
- Apache FOP - 从XSL-FO创建PDF。
- Apache PDFBox - 用于创建和操作PDF的工具箱。
- Dynamic Jasper - 抽象层到JasperReports。
- DynamicReports - 简化JasperReports。
- flyingsaucer - XML / XHTML和CSS 2.1渲染器。
- iText - 以编程方式创建PDF文件,但需要许可证用于商业目的。
- JasperReports - 复杂报告引擎。
性能分析(Performance analysis)
Tools for performance analysis, profiling and benchmarking.性能分析,分析和基准测试工具。
- GCeasy - 分析和可视化GC日志的工具。 它提供了一个免费的基于云的上传界面。
- honest-profiler - 低开销,无偏差的采样分析仪。
- jHiccup - 日志和记录平台JVM档位。
- JMH - JMH是用于构建,运行和分析以Java和其他针对JVM的语言编写的nano / micro / milli / macro基准测试的Java线程.
- JProfiler - 剖面仪
- LatencyUtils - 延迟测量和报告的实用程序。
- XRebel - Profiler for Web应用程序。
- YourKit Java Profiler - 剖面仪
平台(Platform)
Frameworks that are suites of multiple libraries encompassing several categories.包含多个类别的多个库的套件框架。
- CUBA Platform - 基于Spring,EclipseLink和Vaadin的高级框架,用于开发具有丰富Web界面的企业应用程序.
- Spring - 提供从依赖注入到面向方面的编程到安全性的许多包。
反应库(Reactive libraries)
Libraries for developing reactive applications.用于开发反应性应用的图书馆。
- Reactive Streams - 提供非阻塞背压的异步流处理标准。
- Reactor -用于构建反应性快速数据应用程序的库。
- RxJava - 用于使用来自JVM的可观察序列编写异步和基于事件的程序的库
- vert.x - Polyglot事件驱动应用程序框架。
REST框架(REST Frameworks)
Frameworks specifically for creating RESTful services.专门用于创建RESTful服务的框架。
- Dropwizard - 使用Jetty,Jackson,Jersey和Metrics设置现代Web应用程序的意见框架。
- Feign - 由Retrofit,JAXRS-2.0和WebSocket启发的HTTP客户端绑定。
- Jersey - JAX-RS参考实现。
- Microserver —Spring&Spring Boot的一个方便的可扩展Microservices插件系统,拥有超过30个插件并且不断增长,支持微型整体和纯粹的微型服务。
- RAML - 建立语言,以合约方式生成REST API
- Rapidoid -一个简单,安全和极快的框架,包括嵌入式HTTP服务器,GUI组件和依赖注入。
- rest.li -使用类型安全绑定和异步非阻塞IO构建强大,可扩展的RESTful架构的框架,该端口到终端开发人员工作流程可促进清洁实践,统一的界面设计和一致的数据建模。
- RESTEasy - 完全认证和便携式实现JAX-RS规范。
- RestExpress - JBoss Netty HTTP堆栈上的薄型封装可提供扩展和性能。
- Restlet Framework - 先进的框架具有强大的路由和过滤功能,统一的客户端和服务器API。
- Retrofit - 类型安全的REST客户端。
- Spark -Sinatra启发框架。
- Swagger - Swagger是用于描述,生成,消费和可视化RESTful Web服务的规范和完整框架实现。
科学计算(Science)
Libraries for scientific computing, analysis and visualization.用于科学计算,分析和可视化的图书馆。
- DataMelt - 科学计算,数据分析和数据可视化的环境。
- GraphStream -动态图形建模与分析库。
- JGraphT - 提供数学图论理论对象和算法的图库。
- JGraphX - 可视化库(主要是Swing)和与边缘图的交互。
搜索(Search)
Engines which index documents for search and analysis.引擎搜索和分析索引文档。
- Apache Lucene - 高性能,功能齐全的跨平台文本搜索引擎库。
- Apache Solr - 针对大量流量优化的企业搜索引擎。
- Elasticsearch - 具有RESTful Web界面和无模式JSON文档的分布式,多租户的全文搜索引擎。
安全(Security)
Libraries that handle security, authentication, authorization or session management.处理安全性,身份验证,授权或会话管理的库。
- Apache Shiro - 执行认证,授权,加密和会话管理。
- Bouncy Castle - 通用加密库。 JCA提供商,从基本助手到PGP / SMIME操作的各种功能。
- Cryptomator - 多平台透明客户端加密云端的文件。
- Hdiv - 运行时应用程序对OWASP的自我保护十大安全风险,如我们不安全的直接对象引用,SQL注入,跨站点脚本(XSS),跨站点请求伪造(CSRF)等等。
- jjwt -Java JWT:用于Java和Android的JSON Web令牌。
- Keycloak -用于浏览器应用程序和RESTful Web服务的集成SSO和IDM。
- Keyczar - 易于使用,但安全的加密框架与密钥版本控制。
- OACC - 提供基于权限的授权服务。
- pac4j - 安全引擎。
- PicketLink - 用于安全和身份管理的伞项目。
序列化(Serialization)
Libraries that handle serialization with high efficiency.以高效率处理序列化的库。
- FlatBuffers - 内存高效的序列化库,可以访问序列化数据,而无需解包和解析。
- FST - JDK兼容的高性能对象图序列化。
- Kryo - 快速高效的对象图序列化框架。
- MessagePack - 高效的二进制序列化格式。
服务器(Server)
Servers which are specifically used to deploy applications.专门用于部署应用程序的服务器。
- Apache Tomcat - 强大的Servlet和JSP全方位服务器。
- Apache TomEE - Tomcat加Java EE。
- Jetty - 重量轻,服务器小,经常嵌入项目。
- nanohttpd -微型,易于嵌入的HTTP服务器。
- WebSphere Liberty - IBM开发的轻量级模块化服务器。
- WildFly - 以前被称为JBoss,由Red Hat开发,具有广泛的Java EE支持。
模板引擎(Template Engine)
Tools which substitute expressions in a template.在模板中替换表达式的工具。
- Handlebars.java - 无逻辑和语义髭模板。
- Jtwig - 模块化,可配置和完全测试的模板引擎。
- Thymeleaf - 旨在成为JSP的替代品,一般用于XML文件。
测试(Testing)
Tools that test from model to the view.从模型到视图测试的工具。
- Apache JMeter - 功能测试和性能测量。
- Arquillian - Java EE容器的集成和功能测试平台。
- AssertJ - 流畅的断言,提高可读性。
- Awaitility - DSL用于同步异步操作。
- Citrus - 集成测试框架,重点是客户端和服务器端消息。
- ConcurrentUnit - 用于测试多线程和异步应用程序的工具包。
- Cucumber - BDD测试框架。
- Cukes-REST -使用胡瓜的REST服务测试的一些小胡瓜步骤。
- Gatling - 负载测试工具设计易于使用,可维护性和高性能。
- GreenMail - 用于集成测试的内存中电子邮件服务器。 支持SMTP,POP3和IMAP,包括SSL
- Hamcrest - 可以组合的匹配器创建灵活的意图表达。
- J8Spec - J8Spec是一个库,允许以Java编写的测试遵循由RSpec和Jasmine引入的BDD风格。
- JBehave - 行为驱动发展框架。
- JGiven - 开发人员友好的BDD测试框架与JUnit和TestNG兼容。
- JMockit - 模拟静态,最终方法等。
- junit-dataprovider -一个TestNG像JUnit的dataprovider转轮..
- JUnitParams - 创建可读和可维护的参数化测试。
- Lamdba Behave - 描述性行为规范框架。
- Mockito - 为了TDD或BDD的目的,在自动化单元测试中创建测试双对象。
- MockServer - 允许模仿与HTTP / S集成的系统。
- Moco - 简明扼要的网页服务,为公爵选择奖2013。
- PIT - 用于评估现有JUnit或TestNG测试套件的故障检测能力的快速变异测试框架。
- PowerMock - 允许模仿静态方法,构造函数,最终类和方法,私有方法和删除静态初始化器。
- raml-tester - 测试请求/响应是否匹配给定的RAML定义。
- REST Assured - Java DSL可轻松测试REST / HTTP服务。
- Selenide - 简洁的Selenium API可编写稳定可读的UI测试。
- Selenium - 适用于Web应用程序的便携式软件测试框架。
- Spock - JUnit兼容框架具有表达性的Groovy派生规范语言。
- TestContainers - 提供通用数据库,Selenium Web浏览器或可以在Docker容器中运行的其他任何东西的一次性实例。
- Truth - 谷歌的断言和命题框架。
- WireMock - 存根和模拟Web服务。
效用(Utility)
Libraries which provide general utility functions.提供一般效用函数的库。
- Apache Commons - 提供不同的通用功能,如配置,验证,集合,文件上传或XML处理。
- CRaSH -在运行CRaSH的JVM中提供一个shell。 由Spring Boot等人使用。
- Dex - 能够强大的ETL和数据可视化的Java / JavaFX工具。
- Gephi - 用于可视化和操纵大型图形网络的跨平台。
- Guava - 集合,缓存,原语支持,并发库,通用注释,字符串处理,I / O等。
- JADE - 构建和调试多代理系统的框架和环境。
- JavaVerbalExpressions - 一个有助于构建困难的正则表达式的库。
- minio-java - 提供简单的API来访问任何Amazon S3兼容对象存储服务器。
- Protégé - 提供本体编辑器和构建基于知识的系统的框架。
- Underscore-java -Underscore.js端口功能。
网页爬网(Web Crawling)
Libraries that analyze the content of websites.分析网站内容的图书馆。
- Apache Nutch - Highly extensible, highly scalable web crawler for production environment.用于生产环境的高度可扩展,高度可扩展的Web爬虫。
- Crawler4j - 简单轻便的网页抓取工具。
- JSoup - 清理,解析,操纵和清理HTML。
Web框架(Web Frameworks)
Frameworks that handle the communication between the layers of an web application.处理Web应用程序层之间的通信的框架。
- Apache Tapestry - 面向组件的框架,用于创建动态,强大,高度可扩展的Web应用程序。
- Apache Wicket - 基于组件的Web应用程序框架类似于Tapestry与状态GUI。
- Baratine - 用于为独立或嵌入式的多个环境构建分布式和应用程序的工具包。
- Blade - 轻巧,模块化的框架,旨在优雅和简单。
- Bootique - 针对可运行应用程序的最小意见框架。
- Grails - MiniGroovy框架旨在通过有利于配置的惯例来提供高效的环境,无需XML和对mixins的支持。
- Jooby - 可扩展,快速和模块化的微框架,提供多种编程模型。
- Ninja - 全栈Web框架。
- Pippo - 小型,高度模块化的Sinatra样框架。
- Play - 在浏览器中使用配置,热代码重新加载和错误显示的约定。
- PrimeFaces - JSF框架具有免费的和商业版本的支持。 提供几个前端组件。
- Ratpack - 一组库可促进快速,高效,可发展和经过良好测试的HTTP应用程序。
- Spring Boot - 微框架简化了Spring应用程序的开发。
- Vaadin - 事件驱动框架构建在GWT之上。 在客户端使用Ajax的服务器端架构。
Resources
社区(Communities)
Active discussions.积极讨论
- r/java - Java社区的子目录。
- stackoverflow - 问答平台
- vJUG - 虚拟Java用户组。
前场(Frontends)
Websites that provide a frontend for this list. Please note, there won't be an official website. We don't associate with a particular website and everybody is allowed to create one.为此列表提供前端的网站。 请注意,不会有官方网站。 我们不与特定网站相关联,并且每个人都被允许创建一个。
影响力书籍(Influential Books)
Books that had a high impact and are still worth reading.影响力很大但仍值得阅读的书籍。
- Effective Java (2nd Edition)有效的Java(第2版)。
- Java 8 in ActionJava 8在行动
- Java Concurrency in PracticeJava并发实践
- Thinking in Java在Java中思考
播客(Podcasts)
Something to listen to while programming.编程时要听的东西
- Java Off HeapJava关闭堆
- The Java CouncilJava委员会
- The Java Posse - Discontinued as of 02/2015.
推特(Twitter)
Active accounts to follow. Descriptions from Twitter.活动帐户跟随。 Twitter的说明
- Adam Bien - 自由职业者:JavaONE Rockstar演讲嘉宾,Java Champion顾问作者。
- Aleksey Shipilëv - 性能极客,基准Tzar,并发Bug猎人。
- Antonio Goncalves - Java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
- Arun Gupta - Java Champion,JavaOne Rockstar,JUG Leader,Devoxx4Kids-er,Couchbase开发商倡导副总裁。
- Brian Goetz -Oracle的Java语言架构师。
- Bruno Borges - Oracle的产品经理/ Java Jock。
- Ed Burns - Oracle技术人员咨询成员。
- Eugen Paraschiv - 春季安全课程作者。
- James Weaver - Java / JavaFX / IoT开发人员,作者和演讲者。
- Java EE - 官方Java EE Twitter帐户。
- Java Magazine - 官方Java杂志帐号。
- Java - 官方Java Twitter帐户。
- Javin Paul - 著名的Java博主。
- Lukas Eder - Java Champion,演讲者,JUG.ch共同领导者,创始人兼CEO Data Geekery(jOOQ)。
- Mario Fusco - RedHatter,JUG协调员,频频演讲者和作者。
- Mark Reinhold - Oracle平台集团首席架构师。
- Markus Eisele -Java EE传播者,红帽。
- Martijn Verburg -伦敦JUG联合领导,演讲者,作者,Java冠军等等。
- Martin Thompson - 讨厌的表现流氓黑社会
- OpenJDK - 官方OpenJDK帐号。
- Peter Lawrey -Java执行专家Peter Lawrey。
- Reza Rahman - Java EE / GlassFish / WebLogic传播者,作者,演讲者,开源黑客。
- Simon Maple -Java Champion,virtualJUG创始人,LJC领导,RebelLabs作者。
- Stephen Colebourne - Java冠军,演讲者。
- Trisha Gee - Java冠军和演讲者。
(Websites)
Sites to read.
- Google Java Style
- InfoQ
- Java Algorithms and Clients
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- The Takipi Blog
- TheServerSide.com
- Vanilla Java
- Voxxed
更多资源
原文:https://github.com/akullpp/awesome-java