- I. Фреймворки и библиотеки
- 1. Фреймворки и библиотеки общего назначения
- 2. Вебфреймворки (Web Frameworks)
- 3. Создания GUI
- 4. Создание бизнес приложений
- 5. Игровые фреймворки (Game Development)
- 6. Полезные библиотеки
- Коллекции, структуры данных и методы работы с ними
- Date and Time
- Dependency Injection и AОП фреймворки
- Работа с консолью и командной строкой
- Функциональное программирование
- Реактивное программирование
- Безопасность и авторизация
- Высокая производительность
- Сериализация (serializer) и работа с файлами (I/O)
- Логирование
- Bean Mapping and Validation
- 7. Изображения и Видео
- 8. Кодогенерация и изменения байт кода
- 9. Фреймворки для создания распределенных и отказоустойчивых приложений
- 10. Наука
- 11. OSGI
- II. Базы данных, поисковые системы, Big data и машинное обучение
- 1. Базы данных и хранилища
- 2. Структуры данных
- 3. Поисковые системы
- 4. Клиенты и драйверы баз данных
- 5. Маппинг объектов в базы данных (ORM и т. п.)
- 6. Системы, для обработки данных (работа с грязными данными, анализ и т.п.)
- 7. Большие данные (big data)
- 8. Машинное обучение и нейроные сети (Machine Learning) – Semantic Web и Linked Data
– Constraint Satisfaction Problem Solver – Работа с естественными языками (NLP) и распознавание речи
- III. Работа с сетью и интеграция
- 1. Веб сервера и сервера приложений (web server & application server)
- 2. Сеть и сокеты
- 3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
- 4. Работа с http и ssh
- 5. Работа с rest
- 6. Интеграционные фреймворки
- 7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
- 8. Работа с Json
- 9. CSV
- 10. Интеграция с Api разных систем (соц. сетей и т. п.)
- 11. Работа с биткойном
- 12. Облачные системы
- 13. Cluster Management
- 14. Работа с документами (XLS, DOC, PDF и т.п.)
- 15. Работа с нативным API разных ОС
- 16. XML и SOAP
- 17. Интеграция с сервисами геопозиционирования
- IV. Тестирование
- V. Инструменты для упрощения разработки
- VI. Языки программирования и приложения, написанные на Java
- VII. Прочее
- VIII. Resources
- IX Видео доклады и лекции о Java
I. Фреймворки и библиотеки
1. Фреймворки и библиотеки общего назначения
К оглавлению
- Spring framework Spring — наверное, самый распространенный фреймворк Java в мире. Лицензия: Apache 2 , рейтинг github’а – 5921, на stackoverflow – более 100 тыс.вопросов.
- Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции, добавляющая элементы функционального программирования в Java, кэширование, функции работы с примитивами, библиотеки работы с многопоточностью, аннотациями, строками, I/O, и т.п. Работает с JDK1.6 и выше. . Лицензия: Apache 2 , рейтинг github’а – 3813.
- Apache Commons – Реализует различные функции, такие как конфигурирование, валидирование, коллекции, загрузка файлов или работу с XML, Лицензия: Apache 2
- Spring Boot — система быстрого создания конфигурации из типовых шаблоннов (шаблонов настройки orm, DI, Spring MVC и т.п.) . Лицензия: Apache 2 , рейтинг github’а – 2386.
- Lombok Очень горячие добавления для языка программирования Java. Генератор кода, целью которого является сокращения реализации рутинного кода. Лицензия: MIT , рейтинг github’а – 1540.
- Puniverse Quasar Quasar это библиотека, добавляющая Fibers (высокопроизводительные легкие threads), Go-подобные channels и Erlang-подобные actors в JVM. Hello World examples. Лицензия: Eclipse Public v1.0/GNU Lesser 3, рейтинг github’а – 1091.
- Rootbeer GPU Compiler Rootbeer GPU Compiler — программирование с использованием GPU на Java. Лицензия: MIT , рейтинг github’а – 972.
- Oblac Jodd Jodd это набор Java инструментов и микро фреймворк, компактный, но мощный. Jodd = tools + ioc + mvc + db + aop + tx + json + html < 1.5 Mb. Лицензия: BSD 2, рейтинг github’а – 912.
- Google Jimfs Jimfs это in-memory файловая система для Java 7 и выше, реализующая API абстрактной файловой системы, описанный в java.nio.file.. Лицензия: Apache 2 , рейтинг github’а – 752.
- Spring batch Spring Batch это легковесный, всеобъемлющий фреймворк, предназначенный для разработки надежных приложений, работающих по расписанию (batch applications), жизненно важных для ежедневных операций корпоративных систем.. Лицензия: Apache 2 , рейтинг github’а – 448.
- Microserver — Удобная микросервисная plugin система для Spring & Spring Boot, с более чем 30 plugins. Лицензия: Apache 2 , github’s star – 429.
- Greenrobot common greenrobot-common – маленькая библиотека добавляющая общие утилиты и классы (например, классы работы со stream-based IO, файлами, строками, датой/временем и hash map/hash set с примитивными типами) для Android и Java проектов. . Лицензия: Apache 2 , рейтинг github’а – 419.
- Kilim Легковесные потоки для Java с обменом сообщениями, nio, http и поддержкой расписания . Лицензия: MIT , рейтинг github’а – 517.
- Apache Isis Apache Isis это фреймворк для разработки rapidly developing domain-driven приложений на in Java. Лицензия: Apache 2.
- Apache Zest Apache Zest это фремворк для разработки Composite Oriented Programming для domain centric приложений. Это концепция включает в себя такие концепции как: Aspect Oriented Programming, Dependency Injection и Domain Driven Design. Лицензия: Apache 2.
2. Веб-фреймворки (Web Frameworks)
Веб-фреймворки (Web Frameworks)
Веб-фреймворки служат для реализации веб-приложений и обработки взаимодйствия service-side и frontend-side веб-приложений. К оглавлению
- Play Framework Play Framework позволяет легко разрабатывать расширяемые веб-приложения на Java и Scala. https://www.playframework.com/ . Лицензия: Apache 2 , рейтинг github’а – 6771.
- Spark Фреймворк, вдохновленный фреймоворком Sinatra, для java. Лицензия: Apache 2 , рейтинг github’а – 2596.
- Atmosphere – фреймворк для разработки клиентской и серверной части асинхронных веб.приложений, поддерживающий разные серверны, браузеры и плагины. Лицензия: CDDL1 / Apache 2 , рейтинг github’а – 2235.
- Grails – вебфреймворк. https://grails.org/ Лицензия: Apache 2 , рейтинг github’а – 1386.
- Blade – простой и элегантный вебфреймворк, http://bladejava.com. Лицензия: Apache 2 , рейтинг github’а – 1360.
- Ninja это полноценный веб фреймворк для Java. Надежный, быстрый и очень продуктивный.http://www.ninjaframework.org/. Лицензия: Apache 2 , рейтинг github’а – 894.
- Electronicarts Orbit — современный фреймворк для JVM языков, который упрощает создание и обслуживание распределенных и масштабируемых онлайн сервисов. Лицензия: BSD 3, рейтинг github’а – 741.
- Ratpack это простой, мощный набор библиотек для создания высокопроизводительных вебприложений. http://ratpack.io/ Лицензия: Apache 2 , рейтинг github’а – 662.
- Vaadin — фреймворк для разработки веб-приложений, основанный на GWT, с server-side моделью программирования и состоянием UI на сервере.https://vaadin.com/ Лицензия: Apache 2 , рейтинг github’а – 398.
- ZK framework Java фреймворк для создания высокопроизводительных веб и мобильных приложений.. Лицензия: GNU Lesser, рейтинг github’а – 161.
- Apache Tapestry – Компонентно-ориентированный фреймворк для создания динамичных, надежных, легко маштабируемый веб приложений, Лицензия: Apache 2.
- Apache Wicket – Компонентно-ориентированный вебфреймворк, похожий на Tapestry с stateful GUI, Лицензия: Apache 2.
- Google Web Toolkit – Набор инструментов разработки, включающий компилятор из Java кода в JavaScript для создания кода, исполняемого в браузере, XML парсер, API для RPC, интеграция с JUnit, поддержка разных языков и локалей и виджеты для создания GUI, Лицензия: Apache 2.
- Pippo – Небольшой, модульный Sinatra-подобный микрофреймворк, Лицензия: Apache 2.
- Spring MVC – Предоставляет много различных возможностей для разработки вебприложений от dependency injection до аспектно-ориентированного программирования и поддержки security, Лицензия: Apache 2.
- JavaServer Faces – Открытая реализация JSF стандарта от Oracle, Лицензия: GNU 2 или CDDL 1.0
- JavaServer Pages – Популярная Java технология шаблонов для создания вебсайтов с реализацией пользовательских тегов, Лицензия: GNU 2 или CDDL 1.0
- Apache Cocoon Separation of concerns и component-based веб-фремворк. Лицензия: Apache 2.
- Apache Struts Apache Struts это открытый фреймворк для создания Java веб-приложений. Лицензия: Apache 2.
- Apache Sling Иновационный веб фреймворк основанный на JCR и OSGi. Лицензия: Apache 2.
- Apache MyFaces Первая открытая реализация JavaServer Faces. Лицензия: Apache 2.
- Apache Pivot Apache Pivot это открытая платформа для создания installable Internet applications (IIAs) [другое название rich Internet application]. Лицензия: Apache 2.
- Apache Turbine Turbine это основанный на сервлетах фреймворк, который позволяет Java developers быстро разрабатывать веб-приложения. Лицензия: Apache 2.
- Apache OODT Apache OODT это компонентный веб-фреймворк. Лицензия: Apache 2.
- VRaptor VRaptor 4 это производтельный открытый MVC вебфреймворк на основе CDI, github’s star – 278. http://www.vraptor.org . Лицензия: Apache 2.
- CUBA Platform – Высокоуровневая Java платформа с открытым кодом для создания корпоративных информационных систем и RIA, на базе Spring, EclipseLink и Vaadin, рейтинг github’а – 215. Лицензия: Apache 2.
Библиотеки для Web разработки
- Tobie ua-parser много языковое портирование библиотеки для парсенга параметров user agent браузера. Лицензия: Apache 2/MIT/Perl, рейтинг github’а – 1497.
- Ghost Driver это реализация Remote WebDriver Wire протокола, использующая PhantomJS как бэкенд. Лицензия: BSD 2, рейтинг github’а – 1179.
- B3log Solo – система управления блогами на Java. Лицензия: Apache 2 , рейтинг github’а – 519.
- Baasbox это проект для создания backend для мобильных и веб-приложений . Лицензия: ?, рейтинг github’а – 499.
- Kolorobot Spring MVC 4 Quickstart Maven Archetype — проект-шаблон (архетип) для Maven’a для быстрого создания проектов веб-приложений Spring MVC 4. Содержит Spring MVC 4, Servlet 3.0, Thymeleaf, Bootstrap, JPA 2.0, MongoDB, JUnit/Mockito, Spring Security 3.2. Лицензия: ?, рейтинг github’а – 480.
- Gargl – Generic API Recorder and Generator Lite (произносится “Gargle”) – инструмент для автоматизации любого веб-сайта, позволяет записывать любые запросы к сайту и превращать их в повторно используемый код на любом из языком программирования. Лицензия: MIT , рейтинг github’а – 462.
- Liferay plugins – набор плагинов для Liferay портала. Лицензия: GNU Lesser 2.1, рейтинг github’а – 444.
- Netflix Ribbon это библиотека для создания load balancers. Лицензия: Apache 2 , рейтинг github’а – 410.
- Gwt bootstrap это библиотека объединяющая виджеты из Twitter Bootstrap и возможности Google Web Toolkit. Лицензия: Apache 2 , рейтинг github’а – 409.
- Netflix Zuul это сервис (edge service), обрабатывающий все запросы от всех устройств и вебсайтов к backend всех Netflix потоковых приложений, он обеспечивает динамическую маршрутизацию, мониторинг, отказоустойчивость и безопасность. Лицензия: Apache 2 , рейтинг github’а – 407.
- PrimeFaces – JSF фреймворк который имеет как свободную, так и комерческую версию с полноценной поддержкой. Предоставляет несколько frontend компонентов. Лицензия: Apache 2.
- Spring Boot – Микрофреймворк для упрощения разработки новых Spring приложений. Лицензия: Apache 2.
- CSSEmbed это небольшая программа/библиотека для автоматического добавления URIs в CSS files. Лицензия: MIT , рейтинг github’а – 407.
- Athou commafeed RSS reader, основанный Dropwizard и AngularJS, вдохновленный Google Reader . Лицензия: Apache 2 , рейтинг github’а – 1226.
- Apache Any23 Anything To Triples (Any23) это библиотека, веб-сервис и консольный инструмент для отображения в RDF формате различных данных полученных из веба. Лицензия: Apache 2.
- Apache Forrest Apache Forrest это фреймворк для представления данных из разных форматов. Лицензия: Apache 2.
Template Engine
Инструменты для замены выражений в шаблонах на реальные данные.
- Apache Velocity – Работает с шаблонами для генерации HTML страниц, emails или даже кодогенерация в целом, Лицензия: Apache 2.
- Apache FreeMarker – Библиотека поддержки универсальных шаблонов без тяжелых или запутанных зависимостей на другие библиотеки. Лицензия: Apache 2.
- Handlebars.java – Семантически подобен шаблонам Mustache, но с меньшим количеством бизнес логии в шаблонах, рейтинг github’а – 451. Лицензия: Apache 2.
- Thymeleaf – Цель: заменять JSP и работать с XML файлами в целом, Лицензия: Apache 2.
- Mustache.java – портирование Mustache.js (систему создания и использования веб.шаблонов с минимальной бизнес логикой) для Java. Лицензия: Apache 2 , рейтинг github’а – 733.
- Apache Tiles Apache Tiles это templating фреймворк, упрощающий разработку веб приложений. Лицензия: Apache 2 , рейтинг github’а – 451.
CMS и content management
- Apache Stanbol Программные компоненты для semantic content management. Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache JSPWiki Wiki движок на стандартных J2EE компонентах (Java, servlets, JSP). Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языков программироваия. Лицензия: Apache 2.
- Apache Roller Apache Roller это полностью функциональный, многопользовательский блог движок и сервер, подходящих для самых разных сайтов блогов. Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache Chemistry Apache Chemistry это открытая реализация спецификации Content Management Interoperability Services (CMIS) для обмена данными между различными CMS. Лицензия: Apache 2.
3. Создания GUI
Библиотеки для создания интерфейс пользователя (кроме веб)
- JavaFX – Правопреемник Swing, Лицензия: Oracle, проприетарная.
- Scene Builder – Визуальный инструмент разработки GUI для приложений JavaFX Лицензия: Oracle, проприетарная. , но см. Gluon Scene Builder (ниже)
- [Gluon Scene Builder] – Scene Builder это открытая и свободная реализация JavaFX Scene Builder. Лицензия: BSD.
- SWT – The Standard Widget Toolkit (SWT) это набор бибилиотек и инструментария для создания графических виджетов в платформе Java. Лицензия: Eclipse Public License v1.0.
- Lanterna – Легковесная библиотека, реализующая консольно-текстовый GUI, похожий на curses. Лицензия: LGPL 2.1.
- Gephi – Кроссплатформенная система для визуализации, изменения и управления большими графами. Лицензия: GNU 3 или CDDL 1.0
4. Создание бизнес-приложений
Фреймворки и библиотеки для создания бизнес-приложений на Java К оглавлению
- Codecademy EventHub — позволяет анализировать бизнес-события, чтобы получать KPI, conversion rate и т. п. Бизнес метрики событий. Лицензия: MIT , рейтинг github’а – 1043.
- Killbill – свободная платформа биллинга и проведения платежей . Лицензия: Apache 2 , рейтинг github’а – 902.
- Activiti это легковесная система управления бизнес-процессами (Business Process Management (BPM) Platform ) . Лицензия: Apache 2 , рейтинг github’а – 861.
- Liferay Portal это свободная веб-платформа для построения бизнес-приложений . Лицензия: GNU Lesser 2.1, рейтинг github’а – 739.
- Broadleaf Commerce – eCommerce-фреймворк для крупных предприятий, основанный на Spring. Лицензия: Apache 2 , рейтинг github’а – 518.
- Droolsjbpm Drools это приложение Business Rules Management System (BRMS), которое реализует Business Rules Engine (BRE), предоставляет механизмы авторизации, управления правилами (rules), управление приложением (Drools Workbench) и плагин для разработки под Eclipse IDE.. Лицензия: Apache 2 , рейтинг github’а – 421.
- Spring Roo — фреймворк с открытым исходным кодом для быстрого создания бизнес-приложений на Java. Полученные в результате приложения используют общие технологии Java, такие как Spring Framework, Java Persistence API, JSP, Apache Maven и AspectJ. Spring Roo является частью проекта Spring.. Лицензия: Apache 2 , рейтинг github’а – 399.
- Apache OFBiz Apache OFBiz (The Apache Open For Business Project) это открытый и свободный фреймворк для автоматизации бизнес процессов больших предприятий, включает в себя компоненты ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), E-Business / E-Commerce, SCM (Supply Chain Management), MRP (Manufacturing Resource Planning), MMS/EAM (Maintenance Management System/Enterprise Asset Management), POS (Point Of Sale). License: Apache 2.
- Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языков программирования. Лицензия: Apache 2.
- Apache ODE Apache ODE это реализация WS-BPEL спецификации, которая позволяет описывать бизнес-процессы и веб сервисы для создания enterprise приложений. Лицензия: Apache 2.
5. Игровые фреймворки (Game Development)
К оглавлению
- libgdx Кроссплатформенный фреймворк для разработки игр на основе OpenGL (ES), работает под Windows, Linux, Mac OS X, Android, iOS и в браузерах с WebGL. Лицензия: Apache 2 , рейтинг github’а – 6579.
- Disunity Экспериментальный набор инструментов для Unity asset и asset bundle files. Лицензия: unlicense.org, рейтинг github’а – 828.
- lwjgl-basics lwjgl-basics это минималистская shader-based библиотека для создания 2D LWJGL sprite игр.https://libgdx.badlogicgames.com/. Лицензия: ?, рейтинг github’а – 656.
- jMonkeyEngine jMonkeyEngine это 3D игровой движок для Java разработчиков. http://jmonkeyengine.org/ Лицензия: BSD 3, рейтинг github’а – 624.
- Jetserver Jetserver высокоскоростной nio сокет Java сервер для multiplayer игр созданный используя Netty и Mike Rettig Jetlang. Лицензия: MIT , рейтинг github’а – 484.
- LWJGL 2.X LWJGL 2.X — Легковесная игровая библиотека на Java. http://www.lwjgl.org/ Лицензия: BSD 3, рейтинг github’а – 394.
- Ardor3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: zlib.
- DimensioneX Multiplayer Engine – Игровой движок псевдо-3D броузерных игр. Известные игры: Underworld Online. Лицензия: GPL
- PlayN Игровой фреймворк для Java работающий на Windows, Linux, HTML5, Android и iOS. Известные игры: Angry Birds Chrome. Лицензия: Apache 2.0. github star – 97.
- Env3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: GPL
- Jake2 Java порт игрового движка Quake II. Лицензия: GPL
- Jogre – JOGRE (Java Online Gaming Real-time Engine) открытый, онлайн, движок реального времени с API работающим только на Java. Лицензия: GPL
- Elflight Engine – платный движок для веб игр. Лицензия: Proprietary
6. Полезные библиотеки
К оглавлению
Коллекции, структуры данных и методы работы с ними
- Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции и методы работы с ними. Работает с JDK1.6 и выше. Лицензия: Apache 2 , рейтинг github’а – 3813.
- Apache Commons Collections – Реализует различные дополнительные коллекции и методы работы с ними. Лицензия: Apache 2
- Gs collections Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Переименована в Eclipse Collections. Лицензия: Apache 2 , рейтинг github’а – 1201.
- Eclipse Collections (в прошлом Gs collections). Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Лицензия: Eclipse Public 1.0. , рейтинг github’а – 1201.
- javatuples – Кортежи (Tuples), Лицензия: Apache 2
- Immutables – Добавляет Scala-подобные классы, Лицензия: Apache 2
- OpenHFT Chronicle Queue Chronicle Queue работает так же как обычная Java очередь, однако каждое события сохраняется на жесткий диск. Лицензия: GNU Lesser 3.0, рейтинг github’а – 440.
- fastutil – Быстрые и компактные типобезопасные коллекции. Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека работы с примитивными коллекциями. Лицензия: GNU Lesser 2.1.
Date and Time
- Библиотеки для обработки даты и времени.*
- Almanac Converter – простые преобразования между различными календарными системами. Лицензия: Apache 2
- Joda-Time – Joda Time это широко распространенная замена стандартных классов date и time в Java. Де-факто стандартная библиотеки даты и времени до появления Java 8. Лицензия: Apache 2, рейтинг github’а – 1442.
- ThreeTenBP – Порт с JSR 310 (java.time package) от автора Joda-Time, Лицензия: BSD 3
- Time4J – Продвинутая библиотека работы с датой и временем. Лицензия: GNU Lesser 2.1
- Ocpsoft Prettytime PrettyTime это библиотека форматирования Java date в выражение на натуральном языке и в формате принятом в социальных сетях (Digg, Twitter, and Facebook) и более чем на 30 человеческих языках. Лицензия: Apache 2 , рейтинг github’а – 394.
Dependency Injection и AОП-фреймворки
Бибилиотеки и фреймворки, которые реализуют парадигму Inversion of Control.
- [Spring Framework](https://github.com/spring-projects/spring-framew ork) Spring — наверное, самый распространенный фреймворк Java в мире, который в том числе реализует Dependency Injection. Лицензия: Apache 2 , рейтинг github’а – 5921.
- Dagger и Dagger2 Быстрый и легковесный фреймворк для реализации dependency injector для Android и Java, работающий во время компиляции, а не во времени выполнения, и не использующий рефлексию. Реализует Java спецификацию JSR-330, описывающую dependency injection. Лицензия: Apache 2 , рейтинг github’а – 3607, на stackoverflow – 800 вопросов.
- Google Guice – Guice (произносится ‘juice’) это легковесный dependency injection фреймворк для Java 6 и выше, созданный Google. Легкий, но мощный фреймворк, из которого получился Dagger. Лицензия: Apache 2, рейтинг github’а – 1881.
- Apache DeltaSpike – фреймворк расширяющий CDI, Лицензия: Apache 2
- HK2 – Легкий и динамичный dependency injection фреймворк, GNU 2/ CDDL 1.0
- AspectJ – Аспектно-ориентированное расширение, легко встраиваемое в существующие приложения, Лицензия: Eclipse Public 1.0
Работа с консолью и командной строкой
- jcommander Библиотека для парсинга параметров командных строк. http://jcommander.org/ Лицензия: Apache 2 , рейтинг github’а – 445.
- Jline это java библиотека для работы с консолью (ввод, редактирование в emacs и vi режимах), также как библиотеки Readline и Editline, однако при этом так как Jline почти полностью написана на Java является полностью платформонезависимой. Лицензия: BSD 4, рейтинг github’а – 396.
- args4j – Парсер командной строки. Лицензия: MIT
- CRaSH – Реализует интерпретатор командной строки (CLI) для запущенных процессов. Лицензия: GNU Lesser 2.1
Функциональное программирование
- Библиотеки, реализующие функциональное программирование.*
- Retrolambda Поддержка лямбда выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2 , рейтинг github’а – 1059.
- Javaslang – Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, рейтинг github’а – 791. Лицензия: Apache 2.
- jOO? – Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, рейтинг github’а – 523. Лицензия: Apache 2.
- Functional Java – Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github’а – 478.
- Cyclops React – Платформа для функционального и реактивного программирования для Java 8 и выше. Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое. Рейтинг github’а – 372. Лицензия: MIT
- Fugue – Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
- TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure’s), в частности с последовательностями (map, filter, fold/reduce…), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д. , Лицензия: Apache 2, рейтинг github’а – 76.
- derive4j – Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, рейтинг github’а – 106. Лицензия: GNU 3
Реактивное программирование
Библиотеки для разработки reactive приложений.
- ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX. Лицензия: Apache 2 , рейтинг github’а – 6279, на stackoverflow – 1814 вопросов.
- Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия: Eclipse Public 1 / Apache 2 , рейтинг github’а – 3743, на stackoverflow – 728 вопросов.
- Reactive Streams – Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github’а – 769.
- Reactor – Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
- 1. Фреймворки и библиотеки общего назначения
- 2. Вебфреймворки (Web Frameworks)
- 3. Создания GUI
- 4. Создание бизнес приложений
- 5. Игровые фреймворки (Game Development)
- 6. Полезные библиотеки
- Коллекции, структуры данных и методы работы с ними
- Date and Time
- Dependency Injection и AОП фреймворки
- Работа с консолью и командной строкой
- Функциональное программирование
- Реактивное программирование
- Безопасность и авторизация
- Высокая производительность
- Сериализация (serializer) и работа с файлами (I/O)
- Логирование
- Bean Mapping and Validation
- 7. Изображения и Видео
- 8. Кодогенерация и изменения байт кода
- 9. Фреймворки для создания распределенных и отказоустойчивых приложений
- 10. Наука
- 11. OSGI
- 1. Базы данных и хранилища
- 2. Структуры данных
- 3. Поисковые системы
- 4. Клиенты и драйверы баз данных
- 5. Маппинг объектов в базы данных (ORM и т. п.)
- 6. Системы, для обработки данных (работа с грязными данными, анализ и т.п.)
- 7. Большие данные (big data)
- 8. Машинное обучение и нейроные сети (Machine Learning) – Semantic Web и Linked Data
– Constraint Satisfaction Problem Solver – Работа с естественными языками (NLP) и распознавание речи
- 1. Веб сервера и сервера приложений (web server & application server)
- 2. Сеть и сокеты
- 3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
- 4. Работа с http и ssh
- 5. Работа с rest
- 6. Интеграционные фреймворки
- 7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
- 8. Работа с Json
- 9. CSV
- 10. Интеграция с Api разных систем (соц. сетей и т. п.)
- 11. Работа с биткойном
- 12. Облачные системы
- 13. Cluster Management
- 14. Работа с документами (XLS, DOC, PDF и т.п.)
- 15. Работа с нативным API разных ОС
- 16. XML и SOAP
- 17. Интеграция с сервисами геопозиционирования
К оглавлению
- Spring framework Spring — наверное, самый распространенный фреймворк Java в мире. Лицензия: Apache 2 , рейтинг github’а – 5921, на stackoverflow – более 100 тыс.вопросов.
- Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции, добавляющая элементы функционального программирования в Java, кэширование, функции работы с примитивами, библиотеки работы с многопоточностью, аннотациями, строками, I/O, и т.п. Работает с JDK1.6 и выше. . Лицензия: Apache 2 , рейтинг github’а – 3813.
- Apache Commons – Реализует различные функции, такие как конфигурирование, валидирование, коллекции, загрузка файлов или работу с XML, Лицензия: Apache 2
- Spring Boot — система быстрого создания конфигурации из типовых шаблоннов (шаблонов настройки orm, DI, Spring MVC и т.п.) . Лицензия: Apache 2 , рейтинг github’а – 2386.
- Lombok Очень горячие добавления для языка программирования Java. Генератор кода, целью которого является сокращения реализации рутинного кода. Лицензия: MIT , рейтинг github’а – 1540.
- Puniverse Quasar Quasar это библиотека, добавляющая Fibers (высокопроизводительные легкие threads), Go-подобные channels и Erlang-подобные actors в JVM. Hello World examples. Лицензия: Eclipse Public v1.0/GNU Lesser 3, рейтинг github’а – 1091.
- Rootbeer GPU Compiler Rootbeer GPU Compiler — программирование с использованием GPU на Java. Лицензия: MIT , рейтинг github’а – 972.
- Oblac Jodd Jodd это набор Java инструментов и микро фреймворк, компактный, но мощный. Jodd = tools + ioc + mvc + db + aop + tx + json + html < 1.5 Mb. Лицензия: BSD 2, рейтинг github’а – 912.
- Google Jimfs Jimfs это in-memory файловая система для Java 7 и выше, реализующая API абстрактной файловой системы, описанный в java.nio.file.. Лицензия: Apache 2 , рейтинг github’а – 752.
- Spring batch Spring Batch это легковесный, всеобъемлющий фреймворк, предназначенный для разработки надежных приложений, работающих по расписанию (batch applications), жизненно важных для ежедневных операций корпоративных систем.. Лицензия: Apache 2 , рейтинг github’а – 448.
- Microserver — Удобная микросервисная plugin система для Spring & Spring Boot, с более чем 30 plugins. Лицензия: Apache 2 , github’s star – 429.
- Greenrobot common greenrobot-common – маленькая библиотека добавляющая общие утилиты и классы (например, классы работы со stream-based IO, файлами, строками, датой/временем и hash map/hash set с примитивными типами) для Android и Java проектов. . Лицензия: Apache 2 , рейтинг github’а – 419.
- Kilim Легковесные потоки для Java с обменом сообщениями, nio, http и поддержкой расписания . Лицензия: MIT , рейтинг github’а – 517.
- Apache Isis Apache Isis это фреймворк для разработки rapidly developing domain-driven приложений на in Java. Лицензия: Apache 2.
- Apache Zest Apache Zest это фремворк для разработки Composite Oriented Programming для domain centric приложений. Это концепция включает в себя такие концепции как: Aspect Oriented Programming, Dependency Injection и Domain Driven Design. Лицензия: Apache 2.
2. Веб-фреймворки (Web Frameworks)
Веб-фреймворки (Web Frameworks)
Веб-фреймворки служат для реализации веб-приложений и обработки взаимодйствия service-side и frontend-side веб-приложений. К оглавлению
- Play Framework Play Framework позволяет легко разрабатывать расширяемые веб-приложения на Java и Scala. https://www.playframework.com/ . Лицензия: Apache 2 , рейтинг github’а – 6771.
- Spark Фреймворк, вдохновленный фреймоворком Sinatra, для java. Лицензия: Apache 2 , рейтинг github’а – 2596.
- Atmosphere – фреймворк для разработки клиентской и серверной части асинхронных веб.приложений, поддерживающий разные серверны, браузеры и плагины. Лицензия: CDDL1 / Apache 2 , рейтинг github’а – 2235.
- Grails – вебфреймворк. https://grails.org/ Лицензия: Apache 2 , рейтинг github’а – 1386.
- Blade – простой и элегантный вебфреймворк, http://bladejava.com. Лицензия: Apache 2 , рейтинг github’а – 1360.
- Ninja это полноценный веб фреймворк для Java. Надежный, быстрый и очень продуктивный.http://www.ninjaframework.org/. Лицензия: Apache 2 , рейтинг github’а – 894.
- Electronicarts Orbit — современный фреймворк для JVM языков, который упрощает создание и обслуживание распределенных и масштабируемых онлайн сервисов. Лицензия: BSD 3, рейтинг github’а – 741.
- Ratpack это простой, мощный набор библиотек для создания высокопроизводительных вебприложений. http://ratpack.io/ Лицензия: Apache 2 , рейтинг github’а – 662.
- Vaadin — фреймворк для разработки веб-приложений, основанный на GWT, с server-side моделью программирования и состоянием UI на сервере.https://vaadin.com/ Лицензия: Apache 2 , рейтинг github’а – 398.
- ZK framework Java фреймворк для создания высокопроизводительных веб и мобильных приложений.. Лицензия: GNU Lesser, рейтинг github’а – 161.
- Apache Tapestry – Компонентно-ориентированный фреймворк для создания динамичных, надежных, легко маштабируемый веб приложений, Лицензия: Apache 2.
- Apache Wicket – Компонентно-ориентированный вебфреймворк, похожий на Tapestry с stateful GUI, Лицензия: Apache 2.
- Google Web Toolkit – Набор инструментов разработки, включающий компилятор из Java кода в JavaScript для создания кода, исполняемого в браузере, XML парсер, API для RPC, интеграция с JUnit, поддержка разных языков и локалей и виджеты для создания GUI, Лицензия: Apache 2.
- Pippo – Небольшой, модульный Sinatra-подобный микрофреймворк, Лицензия: Apache 2.
- Spring MVC – Предоставляет много различных возможностей для разработки вебприложений от dependency injection до аспектно-ориентированного программирования и поддержки security, Лицензия: Apache 2.
- JavaServer Faces – Открытая реализация JSF стандарта от Oracle, Лицензия: GNU 2 или CDDL 1.0
- JavaServer Pages – Популярная Java технология шаблонов для создания вебсайтов с реализацией пользовательских тегов, Лицензия: GNU 2 или CDDL 1.0
- Apache Cocoon Separation of concerns и component-based веб-фремворк. Лицензия: Apache 2.
- Apache Struts Apache Struts это открытый фреймворк для создания Java веб-приложений. Лицензия: Apache 2.
- Apache Sling Иновационный веб фреймворк основанный на JCR и OSGi. Лицензия: Apache 2.
- Apache MyFaces Первая открытая реализация JavaServer Faces. Лицензия: Apache 2.
- Apache Pivot Apache Pivot это открытая платформа для создания installable Internet applications (IIAs) [другое название rich Internet application]. Лицензия: Apache 2.
- Apache Turbine Turbine это основанный на сервлетах фреймворк, который позволяет Java developers быстро разрабатывать веб-приложения. Лицензия: Apache 2.
- Apache OODT Apache OODT это компонентный веб-фреймворк. Лицензия: Apache 2.
- VRaptor VRaptor 4 это производтельный открытый MVC вебфреймворк на основе CDI, github’s star – 278. http://www.vraptor.org . Лицензия: Apache 2.
- CUBA Platform – Высокоуровневая Java платформа с открытым кодом для создания корпоративных информационных систем и RIA, на базе Spring, EclipseLink и Vaadin, рейтинг github’а – 215. Лицензия: Apache 2.
Библиотеки для Web разработки
- Tobie ua-parser много языковое портирование библиотеки для парсенга параметров user agent браузера. Лицензия: Apache 2/MIT/Perl, рейтинг github’а – 1497.
- Ghost Driver это реализация Remote WebDriver Wire протокола, использующая PhantomJS как бэкенд. Лицензия: BSD 2, рейтинг github’а – 1179.
- B3log Solo – система управления блогами на Java. Лицензия: Apache 2 , рейтинг github’а – 519.
- Baasbox это проект для создания backend для мобильных и веб-приложений . Лицензия: ?, рейтинг github’а – 499.
- Kolorobot Spring MVC 4 Quickstart Maven Archetype — проект-шаблон (архетип) для Maven’a для быстрого создания проектов веб-приложений Spring MVC 4. Содержит Spring MVC 4, Servlet 3.0, Thymeleaf, Bootstrap, JPA 2.0, MongoDB, JUnit/Mockito, Spring Security 3.2. Лицензия: ?, рейтинг github’а – 480.
- Gargl – Generic API Recorder and Generator Lite (произносится “Gargle”) – инструмент для автоматизации любого веб-сайта, позволяет записывать любые запросы к сайту и превращать их в повторно используемый код на любом из языком программирования. Лицензия: MIT , рейтинг github’а – 462.
- Liferay plugins – набор плагинов для Liferay портала. Лицензия: GNU Lesser 2.1, рейтинг github’а – 444.
- Netflix Ribbon это библиотека для создания load balancers. Лицензия: Apache 2 , рейтинг github’а – 410.
- Gwt bootstrap это библиотека объединяющая виджеты из Twitter Bootstrap и возможности Google Web Toolkit. Лицензия: Apache 2 , рейтинг github’а – 409.
- Netflix Zuul это сервис (edge service), обрабатывающий все запросы от всех устройств и вебсайтов к backend всех Netflix потоковых приложений, он обеспечивает динамическую маршрутизацию, мониторинг, отказоустойчивость и безопасность. Лицензия: Apache 2 , рейтинг github’а – 407.
- PrimeFaces – JSF фреймворк который имеет как свободную, так и комерческую версию с полноценной поддержкой. Предоставляет несколько frontend компонентов. Лицензия: Apache 2.
- Spring Boot – Микрофреймворк для упрощения разработки новых Spring приложений. Лицензия: Apache 2.
- CSSEmbed это небольшая программа/библиотека для автоматического добавления URIs в CSS files. Лицензия: MIT , рейтинг github’а – 407.
- Athou commafeed RSS reader, основанный Dropwizard и AngularJS, вдохновленный Google Reader . Лицензия: Apache 2 , рейтинг github’а – 1226.
- Apache Any23 Anything To Triples (Any23) это библиотека, веб-сервис и консольный инструмент для отображения в RDF формате различных данных полученных из веба. Лицензия: Apache 2.
- Apache Forrest Apache Forrest это фреймворк для представления данных из разных форматов. Лицензия: Apache 2.
Template Engine
Инструменты для замены выражений в шаблонах на реальные данные.
- Apache Velocity – Работает с шаблонами для генерации HTML страниц, emails или даже кодогенерация в целом, Лицензия: Apache 2.
- Apache FreeMarker – Библиотека поддержки универсальных шаблонов без тяжелых или запутанных зависимостей на другие библиотеки. Лицензия: Apache 2.
- Handlebars.java – Семантически подобен шаблонам Mustache, но с меньшим количеством бизнес логии в шаблонах, рейтинг github’а – 451. Лицензия: Apache 2.
- Thymeleaf – Цель: заменять JSP и работать с XML файлами в целом, Лицензия: Apache 2.
- Mustache.java – портирование Mustache.js (систему создания и использования веб.шаблонов с минимальной бизнес логикой) для Java. Лицензия: Apache 2 , рейтинг github’а – 733.
- Apache Tiles Apache Tiles это templating фреймворк, упрощающий разработку веб приложений. Лицензия: Apache 2 , рейтинг github’а – 451.
CMS и content management
- Apache Stanbol Программные компоненты для semantic content management. Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache JSPWiki Wiki движок на стандартных J2EE компонентах (Java, servlets, JSP). Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языков программироваия. Лицензия: Apache 2.
- Apache Roller Apache Roller это полностью функциональный, многопользовательский блог движок и сервер, подходящих для самых разных сайтов блогов. Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache Chemistry Apache Chemistry это открытая реализация спецификации Content Management Interoperability Services (CMIS) для обмена данными между различными CMS. Лицензия: Apache 2.
3. Создания GUI
Библиотеки для создания интерфейс пользователя (кроме веб)
- JavaFX – Правопреемник Swing, Лицензия: Oracle, проприетарная.
- Scene Builder – Визуальный инструмент разработки GUI для приложений JavaFX Лицензия: Oracle, проприетарная. , но см. Gluon Scene Builder (ниже)
- [Gluon Scene Builder] – Scene Builder это открытая и свободная реализация JavaFX Scene Builder. Лицензия: BSD.
- SWT – The Standard Widget Toolkit (SWT) это набор бибилиотек и инструментария для создания графических виджетов в платформе Java. Лицензия: Eclipse Public License v1.0.
- Lanterna – Легковесная библиотека, реализующая консольно-текстовый GUI, похожий на curses. Лицензия: LGPL 2.1.
- Gephi – Кроссплатформенная система для визуализации, изменения и управления большими графами. Лицензия: GNU 3 или CDDL 1.0
4. Создание бизнес-приложений
Фреймворки и библиотеки для создания бизнес-приложений на Java К оглавлению
- Codecademy EventHub — позволяет анализировать бизнес-события, чтобы получать KPI, conversion rate и т. п. Бизнес метрики событий. Лицензия: MIT , рейтинг github’а – 1043.
- Killbill – свободная платформа биллинга и проведения платежей . Лицензия: Apache 2 , рейтинг github’а – 902.
- Activiti это легковесная система управления бизнес-процессами (Business Process Management (BPM) Platform ) . Лицензия: Apache 2 , рейтинг github’а – 861.
- Liferay Portal это свободная веб-платформа для построения бизнес-приложений . Лицензия: GNU Lesser 2.1, рейтинг github’а – 739.
- Broadleaf Commerce – eCommerce-фреймворк для крупных предприятий, основанный на Spring. Лицензия: Apache 2 , рейтинг github’а – 518.
- Droolsjbpm Drools это приложение Business Rules Management System (BRMS), которое реализует Business Rules Engine (BRE), предоставляет механизмы авторизации, управления правилами (rules), управление приложением (Drools Workbench) и плагин для разработки под Eclipse IDE.. Лицензия: Apache 2 , рейтинг github’а – 421.
- Spring Roo — фреймворк с открытым исходным кодом для быстрого создания бизнес-приложений на Java. Полученные в результате приложения используют общие технологии Java, такие как Spring Framework, Java Persistence API, JSP, Apache Maven и AspectJ. Spring Roo является частью проекта Spring.. Лицензия: Apache 2 , рейтинг github’а – 399.
- Apache OFBiz Apache OFBiz (The Apache Open For Business Project) это открытый и свободный фреймворк для автоматизации бизнес процессов больших предприятий, включает в себя компоненты ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), E-Business / E-Commerce, SCM (Supply Chain Management), MRP (Manufacturing Resource Planning), MMS/EAM (Maintenance Management System/Enterprise Asset Management), POS (Point Of Sale). License: Apache 2.
- Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языков программирования. Лицензия: Apache 2.
- Apache ODE Apache ODE это реализация WS-BPEL спецификации, которая позволяет описывать бизнес-процессы и веб сервисы для создания enterprise приложений. Лицензия: Apache 2.
5. Игровые фреймворки (Game Development)
К оглавлению
- libgdx Кроссплатформенный фреймворк для разработки игр на основе OpenGL (ES), работает под Windows, Linux, Mac OS X, Android, iOS и в браузерах с WebGL. Лицензия: Apache 2 , рейтинг github’а – 6579.
- Disunity Экспериментальный набор инструментов для Unity asset и asset bundle files. Лицензия: unlicense.org, рейтинг github’а – 828.
- lwjgl-basics lwjgl-basics это минималистская shader-based библиотека для создания 2D LWJGL sprite игр.https://libgdx.badlogicgames.com/. Лицензия: ?, рейтинг github’а – 656.
- jMonkeyEngine jMonkeyEngine это 3D игровой движок для Java разработчиков. http://jmonkeyengine.org/ Лицензия: BSD 3, рейтинг github’а – 624.
- Jetserver Jetserver высокоскоростной nio сокет Java сервер для multiplayer игр созданный используя Netty и Mike Rettig Jetlang. Лицензия: MIT , рейтинг github’а – 484.
- LWJGL 2.X LWJGL 2.X — Легковесная игровая библиотека на Java. http://www.lwjgl.org/ Лицензия: BSD 3, рейтинг github’а – 394.
- Ardor3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: zlib.
- DimensioneX Multiplayer Engine – Игровой движок псевдо-3D броузерных игр. Известные игры: Underworld Online. Лицензия: GPL
- PlayN Игровой фреймворк для Java работающий на Windows, Linux, HTML5, Android и iOS. Известные игры: Angry Birds Chrome. Лицензия: Apache 2.0. github star – 97.
- Env3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: GPL
- Jake2 Java порт игрового движка Quake II. Лицензия: GPL
- Jogre – JOGRE (Java Online Gaming Real-time Engine) открытый, онлайн, движок реального времени с API работающим только на Java. Лицензия: GPL
- Elflight Engine – платный движок для веб игр. Лицензия: Proprietary
6. Полезные библиотеки
К оглавлению
Коллекции, структуры данных и методы работы с ними
- Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции и методы работы с ними. Работает с JDK1.6 и выше. Лицензия: Apache 2 , рейтинг github’а – 3813.
- Apache Commons Collections – Реализует различные дополнительные коллекции и методы работы с ними. Лицензия: Apache 2
- Gs collections Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Переименована в Eclipse Collections. Лицензия: Apache 2 , рейтинг github’а – 1201.
- Eclipse Collections (в прошлом Gs collections). Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Лицензия: Eclipse Public 1.0. , рейтинг github’а – 1201.
- javatuples – Кортежи (Tuples), Лицензия: Apache 2
- Immutables – Добавляет Scala-подобные классы, Лицензия: Apache 2
- OpenHFT Chronicle Queue Chronicle Queue работает так же как обычная Java очередь, однако каждое события сохраняется на жесткий диск. Лицензия: GNU Lesser 3.0, рейтинг github’а – 440.
- fastutil – Быстрые и компактные типобезопасные коллекции. Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека работы с примитивными коллекциями. Лицензия: GNU Lesser 2.1.
Date and Time
- Библиотеки для обработки даты и времени.*
- Almanac Converter – простые преобразования между различными календарными системами. Лицензия: Apache 2
- Joda-Time – Joda Time это широко распространенная замена стандартных классов date и time в Java. Де-факто стандартная библиотеки даты и времени до появления Java 8. Лицензия: Apache 2, рейтинг github’а – 1442.
- ThreeTenBP – Порт с JSR 310 (java.time package) от автора Joda-Time, Лицензия: BSD 3
- Time4J – Продвинутая библиотека работы с датой и временем. Лицензия: GNU Lesser 2.1
- Ocpsoft Prettytime PrettyTime это библиотека форматирования Java date в выражение на натуральном языке и в формате принятом в социальных сетях (Digg, Twitter, and Facebook) и более чем на 30 человеческих языках. Лицензия: Apache 2 , рейтинг github’а – 394.
Dependency Injection и AОП-фреймворки
Бибилиотеки и фреймворки, которые реализуют парадигму Inversion of Control.
- [Spring Framework](https://github.com/spring-projects/spring-framew ork) Spring — наверное, самый распространенный фреймворк Java в мире, который в том числе реализует Dependency Injection. Лицензия: Apache 2 , рейтинг github’а – 5921.
- Dagger и Dagger2 Быстрый и легковесный фреймворк для реализации dependency injector для Android и Java, работающий во время компиляции, а не во времени выполнения, и не использующий рефлексию. Реализует Java спецификацию JSR-330, описывающую dependency injection. Лицензия: Apache 2 , рейтинг github’а – 3607, на stackoverflow – 800 вопросов.
- Google Guice – Guice (произносится ‘juice’) это легковесный dependency injection фреймворк для Java 6 и выше, созданный Google. Легкий, но мощный фреймворк, из которого получился Dagger. Лицензия: Apache 2, рейтинг github’а – 1881.
- Apache DeltaSpike – фреймворк расширяющий CDI, Лицензия: Apache 2
- HK2 – Легкий и динамичный dependency injection фреймворк, GNU 2/ CDDL 1.0
- AspectJ – Аспектно-ориентированное расширение, легко встраиваемое в существующие приложения, Лицензия: Eclipse Public 1.0
Работа с консолью и командной строкой
- jcommander Библиотека для парсинга параметров командных строк. http://jcommander.org/ Лицензия: Apache 2 , рейтинг github’а – 445.
- Jline это java библиотека для работы с консолью (ввод, редактирование в emacs и vi режимах), также как библиотеки Readline и Editline, однако при этом так как Jline почти полностью написана на Java является полностью платформонезависимой. Лицензия: BSD 4, рейтинг github’а – 396.
- args4j – Парсер командной строки. Лицензия: MIT
- CRaSH – Реализует интерпретатор командной строки (CLI) для запущенных процессов. Лицензия: GNU Lesser 2.1
Функциональное программирование
- Библиотеки, реализующие функциональное программирование.*
- Retrolambda Поддержка лямбда выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2 , рейтинг github’а – 1059.
- Javaslang – Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, рейтинг github’а – 791. Лицензия: Apache 2.
- jOO? – Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, рейтинг github’а – 523. Лицензия: Apache 2.
- Functional Java – Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github’а – 478.
- Cyclops React – Платформа для функционального и реактивного программирования для Java 8 и выше. Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое. Рейтинг github’а – 372. Лицензия: MIT
- Fugue – Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
- TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure’s), в частности с последовательностями (map, filter, fold/reduce…), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д. , Лицензия: Apache 2, рейтинг github’а – 76.
- derive4j – Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, рейтинг github’а – 106. Лицензия: GNU 3
Реактивное программирование
Библиотеки для разработки reactive приложений.
- ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX. Лицензия: Apache 2 , рейтинг github’а – 6279, на stackoverflow – 1814 вопросов.
- Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия: Eclipse Public 1 / Apache 2 , рейтинг github’а – 3743, на stackoverflow – 728 вопросов.
- Reactive Streams – Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github’а – 769.
- Reactor – Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
Веб-фреймворки служат для реализации веб-приложений и обработки взаимодйствия service-side и frontend-side веб-приложений. К оглавлению
- Play Framework Play Framework позволяет легко разрабатывать расширяемые веб-приложения на Java и Scala. https://www.playframework.com/ . Лицензия: Apache 2 , рейтинг github’а – 6771.
- Spark Фреймворк, вдохновленный фреймоворком Sinatra, для java. Лицензия: Apache 2 , рейтинг github’а – 2596.
- Atmosphere – фреймворк для разработки клиентской и серверной части асинхронных веб.приложений, поддерживающий разные серверны, браузеры и плагины. Лицензия: CDDL1 / Apache 2 , рейтинг github’а – 2235.
- Grails – вебфреймворк. https://grails.org/ Лицензия: Apache 2 , рейтинг github’а – 1386.
- Blade – простой и элегантный вебфреймворк, http://bladejava.com. Лицензия: Apache 2 , рейтинг github’а – 1360.
- Ninja это полноценный веб фреймворк для Java. Надежный, быстрый и очень продуктивный.http://www.ninjaframework.org/. Лицензия: Apache 2 , рейтинг github’а – 894.
- Electronicarts Orbit — современный фреймворк для JVM языков, который упрощает создание и обслуживание распределенных и масштабируемых онлайн сервисов. Лицензия: BSD 3, рейтинг github’а – 741.
- Ratpack это простой, мощный набор библиотек для создания высокопроизводительных вебприложений. http://ratpack.io/ Лицензия: Apache 2 , рейтинг github’а – 662.
- Vaadin — фреймворк для разработки веб-приложений, основанный на GWT, с server-side моделью программирования и состоянием UI на сервере.https://vaadin.com/ Лицензия: Apache 2 , рейтинг github’а – 398.
- ZK framework Java фреймворк для создания высокопроизводительных веб и мобильных приложений.. Лицензия: GNU Lesser, рейтинг github’а – 161.
- Apache Tapestry – Компонентно-ориентированный фреймворк для создания динамичных, надежных, легко маштабируемый веб приложений, Лицензия: Apache 2.
- Apache Wicket – Компонентно-ориентированный вебфреймворк, похожий на Tapestry с stateful GUI, Лицензия: Apache 2.
- Google Web Toolkit – Набор инструментов разработки, включающий компилятор из Java кода в JavaScript для создания кода, исполняемого в браузере, XML парсер, API для RPC, интеграция с JUnit, поддержка разных языков и локалей и виджеты для создания GUI, Лицензия: Apache 2.
- Pippo – Небольшой, модульный Sinatra-подобный микрофреймворк, Лицензия: Apache 2.
- Spring MVC – Предоставляет много различных возможностей для разработки вебприложений от dependency injection до аспектно-ориентированного программирования и поддержки security, Лицензия: Apache 2.
- JavaServer Faces – Открытая реализация JSF стандарта от Oracle, Лицензия: GNU 2 или CDDL 1.0
- JavaServer Pages – Популярная Java технология шаблонов для создания вебсайтов с реализацией пользовательских тегов, Лицензия: GNU 2 или CDDL 1.0
- Apache Cocoon Separation of concerns и component-based веб-фремворк. Лицензия: Apache 2.
- Apache Struts Apache Struts это открытый фреймворк для создания Java веб-приложений. Лицензия: Apache 2.
- Apache Sling Иновационный веб фреймворк основанный на JCR и OSGi. Лицензия: Apache 2.
- Apache MyFaces Первая открытая реализация JavaServer Faces. Лицензия: Apache 2.
- Apache Pivot Apache Pivot это открытая платформа для создания installable Internet applications (IIAs) [другое название rich Internet application]. Лицензия: Apache 2.
- Apache Turbine Turbine это основанный на сервлетах фреймворк, который позволяет Java developers быстро разрабатывать веб-приложения. Лицензия: Apache 2.
- Apache OODT Apache OODT это компонентный веб-фреймворк. Лицензия: Apache 2.
- VRaptor VRaptor 4 это производтельный открытый MVC вебфреймворк на основе CDI, github’s star – 278. http://www.vraptor.org . Лицензия: Apache 2.
- CUBA Platform – Высокоуровневая Java платформа с открытым кодом для создания корпоративных информационных систем и RIA, на базе Spring, EclipseLink и Vaadin, рейтинг github’а – 215. Лицензия: Apache 2.
Библиотеки для Web разработки
- Tobie ua-parser много языковое портирование библиотеки для парсенга параметров user agent браузера. Лицензия: Apache 2/MIT/Perl, рейтинг github’а – 1497.
- Ghost Driver это реализация Remote WebDriver Wire протокола, использующая PhantomJS как бэкенд. Лицензия: BSD 2, рейтинг github’а – 1179.
- B3log Solo – система управления блогами на Java. Лицензия: Apache 2 , рейтинг github’а – 519.
- Baasbox это проект для создания backend для мобильных и веб-приложений . Лицензия: ?, рейтинг github’а – 499.
- Kolorobot Spring MVC 4 Quickstart Maven Archetype — проект-шаблон (архетип) для Maven’a для быстрого создания проектов веб-приложений Spring MVC 4. Содержит Spring MVC 4, Servlet 3.0, Thymeleaf, Bootstrap, JPA 2.0, MongoDB, JUnit/Mockito, Spring Security 3.2. Лицензия: ?, рейтинг github’а – 480.
- Gargl – Generic API Recorder and Generator Lite (произносится “Gargle”) – инструмент для автоматизации любого веб-сайта, позволяет записывать любые запросы к сайту и превращать их в повторно используемый код на любом из языком программирования. Лицензия: MIT , рейтинг github’а – 462.
- Liferay plugins – набор плагинов для Liferay портала. Лицензия: GNU Lesser 2.1, рейтинг github’а – 444.
- Netflix Ribbon это библиотека для создания load balancers. Лицензия: Apache 2 , рейтинг github’а – 410.
- Gwt bootstrap это библиотека объединяющая виджеты из Twitter Bootstrap и возможности Google Web Toolkit. Лицензия: Apache 2 , рейтинг github’а – 409.
- Netflix Zuul это сервис (edge service), обрабатывающий все запросы от всех устройств и вебсайтов к backend всех Netflix потоковых приложений, он обеспечивает динамическую маршрутизацию, мониторинг, отказоустойчивость и безопасность. Лицензия: Apache 2 , рейтинг github’а – 407.
- PrimeFaces – JSF фреймворк который имеет как свободную, так и комерческую версию с полноценной поддержкой. Предоставляет несколько frontend компонентов. Лицензия: Apache 2.
- Spring Boot – Микрофреймворк для упрощения разработки новых Spring приложений. Лицензия: Apache 2.
- CSSEmbed это небольшая программа/библиотека для автоматического добавления URIs в CSS files. Лицензия: MIT , рейтинг github’а – 407.
- Athou commafeed RSS reader, основанный Dropwizard и AngularJS, вдохновленный Google Reader . Лицензия: Apache 2 , рейтинг github’а – 1226.
- Apache Any23 Anything To Triples (Any23) это библиотека, веб-сервис и консольный инструмент для отображения в RDF формате различных данных полученных из веба. Лицензия: Apache 2.
- Apache Forrest Apache Forrest это фреймворк для представления данных из разных форматов. Лицензия: Apache 2.
Template Engine
Инструменты для замены выражений в шаблонах на реальные данные.
- Apache Velocity – Работает с шаблонами для генерации HTML страниц, emails или даже кодогенерация в целом, Лицензия: Apache 2.
- Apache FreeMarker – Библиотека поддержки универсальных шаблонов без тяжелых или запутанных зависимостей на другие библиотеки. Лицензия: Apache 2.
- Handlebars.java – Семантически подобен шаблонам Mustache, но с меньшим количеством бизнес логии в шаблонах, рейтинг github’а – 451. Лицензия: Apache 2.
- Thymeleaf – Цель: заменять JSP и работать с XML файлами в целом, Лицензия: Apache 2.
- Mustache.java – портирование Mustache.js (систему создания и использования веб.шаблонов с минимальной бизнес логикой) для Java. Лицензия: Apache 2 , рейтинг github’а – 733.
- Apache Tiles Apache Tiles это templating фреймворк, упрощающий разработку веб приложений. Лицензия: Apache 2 , рейтинг github’а – 451.
CMS и content management
- Apache Stanbol Программные компоненты для semantic content management. Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache JSPWiki Wiki движок на стандартных J2EE компонентах (Java, servlets, JSP). Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языков программироваия. Лицензия: Apache 2.
- Apache Roller Apache Roller это полностью функциональный, многопользовательский блог движок и сервер, подходящих для самых разных сайтов блогов. Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache Chemistry Apache Chemistry это открытая реализация спецификации Content Management Interoperability Services (CMIS) для обмена данными между различными CMS. Лицензия: Apache 2.
3. Создания GUI
Библиотеки для создания интерфейс пользователя (кроме веб)
- JavaFX – Правопреемник Swing, Лицензия: Oracle, проприетарная.
- Scene Builder – Визуальный инструмент разработки GUI для приложений JavaFX Лицензия: Oracle, проприетарная. , но см. Gluon Scene Builder (ниже)
- [Gluon Scene Builder] – Scene Builder это открытая и свободная реализация JavaFX Scene Builder. Лицензия: BSD.
- SWT – The Standard Widget Toolkit (SWT) это набор бибилиотек и инструментария для создания графических виджетов в платформе Java. Лицензия: Eclipse Public License v1.0.
- Lanterna – Легковесная библиотека, реализующая консольно-текстовый GUI, похожий на curses. Лицензия: LGPL 2.1.
- Gephi – Кроссплатформенная система для визуализации, изменения и управления большими графами. Лицензия: GNU 3 или CDDL 1.0
4. Создание бизнес-приложений
Фреймворки и библиотеки для создания бизнес-приложений на Java К оглавлению
- Codecademy EventHub — позволяет анализировать бизнес-события, чтобы получать KPI, conversion rate и т. п. Бизнес метрики событий. Лицензия: MIT , рейтинг github’а – 1043.
- Killbill – свободная платформа биллинга и проведения платежей . Лицензия: Apache 2 , рейтинг github’а – 902.
- Activiti это легковесная система управления бизнес-процессами (Business Process Management (BPM) Platform ) . Лицензия: Apache 2 , рейтинг github’а – 861.
- Liferay Portal это свободная веб-платформа для построения бизнес-приложений . Лицензия: GNU Lesser 2.1, рейтинг github’а – 739.
- Broadleaf Commerce – eCommerce-фреймворк для крупных предприятий, основанный на Spring. Лицензия: Apache 2 , рейтинг github’а – 518.
- Droolsjbpm Drools это приложение Business Rules Management System (BRMS), которое реализует Business Rules Engine (BRE), предоставляет механизмы авторизации, управления правилами (rules), управление приложением (Drools Workbench) и плагин для разработки под Eclipse IDE.. Лицензия: Apache 2 , рейтинг github’а – 421.
- Spring Roo — фреймворк с открытым исходным кодом для быстрого создания бизнес-приложений на Java. Полученные в результате приложения используют общие технологии Java, такие как Spring Framework, Java Persistence API, JSP, Apache Maven и AspectJ. Spring Roo является частью проекта Spring.. Лицензия: Apache 2 , рейтинг github’а – 399.
- Apache OFBiz Apache OFBiz (The Apache Open For Business Project) это открытый и свободный фреймворк для автоматизации бизнес процессов больших предприятий, включает в себя компоненты ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), E-Business / E-Commerce, SCM (Supply Chain Management), MRP (Manufacturing Resource Planning), MMS/EAM (Maintenance Management System/Enterprise Asset Management), POS (Point Of Sale). License: Apache 2.
- Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языков программирования. Лицензия: Apache 2.
- Apache ODE Apache ODE это реализация WS-BPEL спецификации, которая позволяет описывать бизнес-процессы и веб сервисы для создания enterprise приложений. Лицензия: Apache 2.
5. Игровые фреймворки (Game Development)
К оглавлению
- libgdx Кроссплатформенный фреймворк для разработки игр на основе OpenGL (ES), работает под Windows, Linux, Mac OS X, Android, iOS и в браузерах с WebGL. Лицензия: Apache 2 , рейтинг github’а – 6579.
- Disunity Экспериментальный набор инструментов для Unity asset и asset bundle files. Лицензия: unlicense.org, рейтинг github’а – 828.
- lwjgl-basics lwjgl-basics это минималистская shader-based библиотека для создания 2D LWJGL sprite игр.https://libgdx.badlogicgames.com/. Лицензия: ?, рейтинг github’а – 656.
- jMonkeyEngine jMonkeyEngine это 3D игровой движок для Java разработчиков. http://jmonkeyengine.org/ Лицензия: BSD 3, рейтинг github’а – 624.
- Jetserver Jetserver высокоскоростной nio сокет Java сервер для multiplayer игр созданный используя Netty и Mike Rettig Jetlang. Лицензия: MIT , рейтинг github’а – 484.
- LWJGL 2.X LWJGL 2.X — Легковесная игровая библиотека на Java. http://www.lwjgl.org/ Лицензия: BSD 3, рейтинг github’а – 394.
- Ardor3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: zlib.
- DimensioneX Multiplayer Engine – Игровой движок псевдо-3D броузерных игр. Известные игры: Underworld Online. Лицензия: GPL
- PlayN Игровой фреймворк для Java работающий на Windows, Linux, HTML5, Android и iOS. Известные игры: Angry Birds Chrome. Лицензия: Apache 2.0. github star – 97.
- Env3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: GPL
- Jake2 Java порт игрового движка Quake II. Лицензия: GPL
- Jogre – JOGRE (Java Online Gaming Real-time Engine) открытый, онлайн, движок реального времени с API работающим только на Java. Лицензия: GPL
- Elflight Engine – платный движок для веб игр. Лицензия: Proprietary
6. Полезные библиотеки
К оглавлению
Коллекции, структуры данных и методы работы с ними
- Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции и методы работы с ними. Работает с JDK1.6 и выше. Лицензия: Apache 2 , рейтинг github’а – 3813.
- Apache Commons Collections – Реализует различные дополнительные коллекции и методы работы с ними. Лицензия: Apache 2
- Gs collections Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Переименована в Eclipse Collections. Лицензия: Apache 2 , рейтинг github’а – 1201.
- Eclipse Collections (в прошлом Gs collections). Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Лицензия: Eclipse Public 1.0. , рейтинг github’а – 1201.
- javatuples – Кортежи (Tuples), Лицензия: Apache 2
- Immutables – Добавляет Scala-подобные классы, Лицензия: Apache 2
- OpenHFT Chronicle Queue Chronicle Queue работает так же как обычная Java очередь, однако каждое события сохраняется на жесткий диск. Лицензия: GNU Lesser 3.0, рейтинг github’а – 440.
- fastutil – Быстрые и компактные типобезопасные коллекции. Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека работы с примитивными коллекциями. Лицензия: GNU Lesser 2.1.
Date and Time
- Библиотеки для обработки даты и времени.*
- Almanac Converter – простые преобразования между различными календарными системами. Лицензия: Apache 2
- Joda-Time – Joda Time это широко распространенная замена стандартных классов date и time в Java. Де-факто стандартная библиотеки даты и времени до появления Java 8. Лицензия: Apache 2, рейтинг github’а – 1442.
- ThreeTenBP – Порт с JSR 310 (java.time package) от автора Joda-Time, Лицензия: BSD 3
- Time4J – Продвинутая библиотека работы с датой и временем. Лицензия: GNU Lesser 2.1
- Ocpsoft Prettytime PrettyTime это библиотека форматирования Java date в выражение на натуральном языке и в формате принятом в социальных сетях (Digg, Twitter, and Facebook) и более чем на 30 человеческих языках. Лицензия: Apache 2 , рейтинг github’а – 394.
Dependency Injection и AОП-фреймворки
Бибилиотеки и фреймворки, которые реализуют парадигму Inversion of Control.
- [Spring Framework](https://github.com/spring-projects/spring-framew ork) Spring — наверное, самый распространенный фреймворк Java в мире, который в том числе реализует Dependency Injection. Лицензия: Apache 2 , рейтинг github’а – 5921.
- Dagger и Dagger2 Быстрый и легковесный фреймворк для реализации dependency injector для Android и Java, работающий во время компиляции, а не во времени выполнения, и не использующий рефлексию. Реализует Java спецификацию JSR-330, описывающую dependency injection. Лицензия: Apache 2 , рейтинг github’а – 3607, на stackoverflow – 800 вопросов.
- Google Guice – Guice (произносится ‘juice’) это легковесный dependency injection фреймворк для Java 6 и выше, созданный Google. Легкий, но мощный фреймворк, из которого получился Dagger. Лицензия: Apache 2, рейтинг github’а – 1881.
- Apache DeltaSpike – фреймворк расширяющий CDI, Лицензия: Apache 2
- HK2 – Легкий и динамичный dependency injection фреймворк, GNU 2/ CDDL 1.0
- AspectJ – Аспектно-ориентированное расширение, легко встраиваемое в существующие приложения, Лицензия: Eclipse Public 1.0
Работа с консолью и командной строкой
- jcommander Библиотека для парсинга параметров командных строк. http://jcommander.org/ Лицензия: Apache 2 , рейтинг github’а – 445.
- Jline это java библиотека для работы с консолью (ввод, редактирование в emacs и vi режимах), также как библиотеки Readline и Editline, однако при этом так как Jline почти полностью написана на Java является полностью платформонезависимой. Лицензия: BSD 4, рейтинг github’а – 396.
- args4j – Парсер командной строки. Лицензия: MIT
- CRaSH – Реализует интерпретатор командной строки (CLI) для запущенных процессов. Лицензия: GNU Lesser 2.1
Функциональное программирование
- Библиотеки, реализующие функциональное программирование.*
- Retrolambda Поддержка лямбда выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2 , рейтинг github’а – 1059.
- Javaslang – Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, рейтинг github’а – 791. Лицензия: Apache 2.
- jOO? – Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, рейтинг github’а – 523. Лицензия: Apache 2.
- Functional Java – Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github’а – 478.
- Cyclops React – Платформа для функционального и реактивного программирования для Java 8 и выше. Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое. Рейтинг github’а – 372. Лицензия: MIT
- Fugue – Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
- TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure’s), в частности с последовательностями (map, filter, fold/reduce…), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д. , Лицензия: Apache 2, рейтинг github’а – 76.
- derive4j – Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, рейтинг github’а – 106. Лицензия: GNU 3
Реактивное программирование
Библиотеки для разработки reactive приложений.
- ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX. Лицензия: Apache 2 , рейтинг github’а – 6279, на stackoverflow – 1814 вопросов.
- Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия: Eclipse Public 1 / Apache 2 , рейтинг github’а – 3743, на stackoverflow – 728 вопросов.
- Reactive Streams – Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github’а – 769.
- Reactor – Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
Инструменты для замены выражений в шаблонах на реальные данные.
- Apache Velocity – Работает с шаблонами для генерации HTML страниц, emails или даже кодогенерация в целом, Лицензия: Apache 2.
- Apache FreeMarker – Библиотека поддержки универсальных шаблонов без тяжелых или запутанных зависимостей на другие библиотеки. Лицензия: Apache 2.
- Handlebars.java – Семантически подобен шаблонам Mustache, но с меньшим количеством бизнес логии в шаблонах, рейтинг github’а – 451. Лицензия: Apache 2.
- Thymeleaf – Цель: заменять JSP и работать с XML файлами в целом, Лицензия: Apache 2.
- Mustache.java – портирование Mustache.js (систему создания и использования веб.шаблонов с минимальной бизнес логикой) для Java. Лицензия: Apache 2 , рейтинг github’а – 733.
- Apache Tiles Apache Tiles это templating фреймворк, упрощающий разработку веб приложений. Лицензия: Apache 2 , рейтинг github’а – 451.
CMS и content management
- Apache Stanbol Программные компоненты для semantic content management. Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache JSPWiki Wiki движок на стандартных J2EE компонентах (Java, servlets, JSP). Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языков программироваия. Лицензия: Apache 2.
- Apache Roller Apache Roller это полностью функциональный, многопользовательский блог движок и сервер, подходящих для самых разных сайтов блогов. Лицензия: Apache 2 , рейтинг github’а – 451.
- Apache Chemistry Apache Chemistry это открытая реализация спецификации Content Management Interoperability Services (CMIS) для обмена данными между различными CMS. Лицензия: Apache 2.
3. Создания GUI
Библиотеки для создания интерфейс пользователя (кроме веб)
- JavaFX – Правопреемник Swing, Лицензия: Oracle, проприетарная.
- Scene Builder – Визуальный инструмент разработки GUI для приложений JavaFX Лицензия: Oracle, проприетарная. , но см. Gluon Scene Builder (ниже)
- [Gluon Scene Builder] – Scene Builder это открытая и свободная реализация JavaFX Scene Builder. Лицензия: BSD.
- SWT – The Standard Widget Toolkit (SWT) это набор бибилиотек и инструментария для создания графических виджетов в платформе Java. Лицензия: Eclipse Public License v1.0.
- Lanterna – Легковесная библиотека, реализующая консольно-текстовый GUI, похожий на curses. Лицензия: LGPL 2.1.
- Gephi – Кроссплатформенная система для визуализации, изменения и управления большими графами. Лицензия: GNU 3 или CDDL 1.0
4. Создание бизнес-приложений
Фреймворки и библиотеки для создания бизнес-приложений на Java К оглавлению
- Codecademy EventHub — позволяет анализировать бизнес-события, чтобы получать KPI, conversion rate и т. п. Бизнес метрики событий. Лицензия: MIT , рейтинг github’а – 1043.
- Killbill – свободная платформа биллинга и проведения платежей . Лицензия: Apache 2 , рейтинг github’а – 902.
- Activiti это легковесная система управления бизнес-процессами (Business Process Management (BPM) Platform ) . Лицензия: Apache 2 , рейтинг github’а – 861.
- Liferay Portal это свободная веб-платформа для построения бизнес-приложений . Лицензия: GNU Lesser 2.1, рейтинг github’а – 739.
- Broadleaf Commerce – eCommerce-фреймворк для крупных предприятий, основанный на Spring. Лицензия: Apache 2 , рейтинг github’а – 518.
- Droolsjbpm Drools это приложение Business Rules Management System (BRMS), которое реализует Business Rules Engine (BRE), предоставляет механизмы авторизации, управления правилами (rules), управление приложением (Drools Workbench) и плагин для разработки под Eclipse IDE.. Лицензия: Apache 2 , рейтинг github’а – 421.
- Spring Roo — фреймворк с открытым исходным кодом для быстрого создания бизнес-приложений на Java. Полученные в результате приложения используют общие технологии Java, такие как Spring Framework, Java Persistence API, JSP, Apache Maven и AspectJ. Spring Roo является частью проекта Spring.. Лицензия: Apache 2 , рейтинг github’а – 399.
- Apache OFBiz Apache OFBiz (The Apache Open For Business Project) это открытый и свободный фреймворк для автоматизации бизнес процессов больших предприятий, включает в себя компоненты ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), E-Business / E-Commerce, SCM (Supply Chain Management), MRP (Manufacturing Resource Planning), MMS/EAM (Maintenance Management System/Enterprise Asset Management), POS (Point Of Sale). License: Apache 2.
- Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языков программирования. Лицензия: Apache 2.
- Apache ODE Apache ODE это реализация WS-BPEL спецификации, которая позволяет описывать бизнес-процессы и веб сервисы для создания enterprise приложений. Лицензия: Apache 2.
5. Игровые фреймворки (Game Development)
К оглавлению
- libgdx Кроссплатформенный фреймворк для разработки игр на основе OpenGL (ES), работает под Windows, Linux, Mac OS X, Android, iOS и в браузерах с WebGL. Лицензия: Apache 2 , рейтинг github’а – 6579.
- Disunity Экспериментальный набор инструментов для Unity asset и asset bundle files. Лицензия: unlicense.org, рейтинг github’а – 828.
- lwjgl-basics lwjgl-basics это минималистская shader-based библиотека для создания 2D LWJGL sprite игр.https://libgdx.badlogicgames.com/. Лицензия: ?, рейтинг github’а – 656.
- jMonkeyEngine jMonkeyEngine это 3D игровой движок для Java разработчиков. http://jmonkeyengine.org/ Лицензия: BSD 3, рейтинг github’а – 624.
- Jetserver Jetserver высокоскоростной nio сокет Java сервер для multiplayer игр созданный используя Netty и Mike Rettig Jetlang. Лицензия: MIT , рейтинг github’а – 484.
- LWJGL 2.X LWJGL 2.X — Легковесная игровая библиотека на Java. http://www.lwjgl.org/ Лицензия: BSD 3, рейтинг github’а – 394.
- Ardor3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: zlib.
- DimensioneX Multiplayer Engine – Игровой движок псевдо-3D броузерных игр. Известные игры: Underworld Online. Лицензия: GPL
- PlayN Игровой фреймворк для Java работающий на Windows, Linux, HTML5, Android и iOS. Известные игры: Angry Birds Chrome. Лицензия: Apache 2.0. github star – 97.
- Env3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: GPL
- Jake2 Java порт игрового движка Quake II. Лицензия: GPL
- Jogre – JOGRE (Java Online Gaming Real-time Engine) открытый, онлайн, движок реального времени с API работающим только на Java. Лицензия: GPL
- Elflight Engine – платный движок для веб игр. Лицензия: Proprietary
6. Полезные библиотеки
К оглавлению
Коллекции, структуры данных и методы работы с ними
- Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции и методы работы с ними. Работает с JDK1.6 и выше. Лицензия: Apache 2 , рейтинг github’а – 3813.
- Apache Commons Collections – Реализует различные дополнительные коллекции и методы работы с ними. Лицензия: Apache 2
- Gs collections Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Переименована в Eclipse Collections. Лицензия: Apache 2 , рейтинг github’а – 1201.
- Eclipse Collections (в прошлом Gs collections). Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Лицензия: Eclipse Public 1.0. , рейтинг github’а – 1201.
- javatuples – Кортежи (Tuples), Лицензия: Apache 2
- Immutables – Добавляет Scala-подобные классы, Лицензия: Apache 2
- OpenHFT Chronicle Queue Chronicle Queue работает так же как обычная Java очередь, однако каждое события сохраняется на жесткий диск. Лицензия: GNU Lesser 3.0, рейтинг github’а – 440.
- fastutil – Быстрые и компактные типобезопасные коллекции. Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека работы с примитивными коллекциями. Лицензия: GNU Lesser 2.1.
Date and Time
- Библиотеки для обработки даты и времени.*
- Almanac Converter – простые преобразования между различными календарными системами. Лицензия: Apache 2
- Joda-Time – Joda Time это широко распространенная замена стандартных классов date и time в Java. Де-факто стандартная библиотеки даты и времени до появления Java 8. Лицензия: Apache 2, рейтинг github’а – 1442.
- ThreeTenBP – Порт с JSR 310 (java.time package) от автора Joda-Time, Лицензия: BSD 3
- Time4J – Продвинутая библиотека работы с датой и временем. Лицензия: GNU Lesser 2.1
- Ocpsoft Prettytime PrettyTime это библиотека форматирования Java date в выражение на натуральном языке и в формате принятом в социальных сетях (Digg, Twitter, and Facebook) и более чем на 30 человеческих языках. Лицензия: Apache 2 , рейтинг github’а – 394.
Dependency Injection и AОП-фреймворки
Бибилиотеки и фреймворки, которые реализуют парадигму Inversion of Control.
- [Spring Framework](https://github.com/spring-projects/spring-framew ork) Spring — наверное, самый распространенный фреймворк Java в мире, который в том числе реализует Dependency Injection. Лицензия: Apache 2 , рейтинг github’а – 5921.
- Dagger и Dagger2 Быстрый и легковесный фреймворк для реализации dependency injector для Android и Java, работающий во время компиляции, а не во времени выполнения, и не использующий рефлексию. Реализует Java спецификацию JSR-330, описывающую dependency injection. Лицензия: Apache 2 , рейтинг github’а – 3607, на stackoverflow – 800 вопросов.
- Google Guice – Guice (произносится ‘juice’) это легковесный dependency injection фреймворк для Java 6 и выше, созданный Google. Легкий, но мощный фреймворк, из которого получился Dagger. Лицензия: Apache 2, рейтинг github’а – 1881.
- Apache DeltaSpike – фреймворк расширяющий CDI, Лицензия: Apache 2
- HK2 – Легкий и динамичный dependency injection фреймворк, GNU 2/ CDDL 1.0
- AspectJ – Аспектно-ориентированное расширение, легко встраиваемое в существующие приложения, Лицензия: Eclipse Public 1.0
Работа с консолью и командной строкой
- jcommander Библиотека для парсинга параметров командных строк. http://jcommander.org/ Лицензия: Apache 2 , рейтинг github’а – 445.
- Jline это java библиотека для работы с консолью (ввод, редактирование в emacs и vi режимах), также как библиотеки Readline и Editline, однако при этом так как Jline почти полностью написана на Java является полностью платформонезависимой. Лицензия: BSD 4, рейтинг github’а – 396.
- args4j – Парсер командной строки. Лицензия: MIT
- CRaSH – Реализует интерпретатор командной строки (CLI) для запущенных процессов. Лицензия: GNU Lesser 2.1
Функциональное программирование
- Библиотеки, реализующие функциональное программирование.*
- Retrolambda Поддержка лямбда выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2 , рейтинг github’а – 1059.
- Javaslang – Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, рейтинг github’а – 791. Лицензия: Apache 2.
- jOO? – Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, рейтинг github’а – 523. Лицензия: Apache 2.
- Functional Java – Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github’а – 478.
- Cyclops React – Платформа для функционального и реактивного программирования для Java 8 и выше. Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое. Рейтинг github’а – 372. Лицензия: MIT
- Fugue – Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
- TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure’s), в частности с последовательностями (map, filter, fold/reduce…), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д. , Лицензия: Apache 2, рейтинг github’а – 76.
- derive4j – Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, рейтинг github’а – 106. Лицензия: GNU 3
Реактивное программирование
Библиотеки для разработки reactive приложений.
- ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX. Лицензия: Apache 2 , рейтинг github’а – 6279, на stackoverflow – 1814 вопросов.
- Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия: Eclipse Public 1 / Apache 2 , рейтинг github’а – 3743, на stackoverflow – 728 вопросов.
- Reactive Streams – Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github’а – 769.
- Reactor – Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
Библиотеки для создания интерфейс пользователя (кроме веб)
- JavaFX – Правопреемник Swing, Лицензия: Oracle, проприетарная.
- Scene Builder – Визуальный инструмент разработки GUI для приложений JavaFX Лицензия: Oracle, проприетарная. , но см. Gluon Scene Builder (ниже)
- [Gluon Scene Builder] – Scene Builder это открытая и свободная реализация JavaFX Scene Builder. Лицензия: BSD.
- SWT – The Standard Widget Toolkit (SWT) это набор бибилиотек и инструментария для создания графических виджетов в платформе Java. Лицензия: Eclipse Public License v1.0.
- Lanterna – Легковесная библиотека, реализующая консольно-текстовый GUI, похожий на curses. Лицензия: LGPL 2.1.
- Gephi – Кроссплатформенная система для визуализации, изменения и управления большими графами. Лицензия: GNU 3 или CDDL 1.0
4. Создание бизнес-приложений
Фреймворки и библиотеки для создания бизнес-приложений на Java К оглавлению
- Codecademy EventHub — позволяет анализировать бизнес-события, чтобы получать KPI, conversion rate и т. п. Бизнес метрики событий. Лицензия: MIT , рейтинг github’а – 1043.
- Killbill – свободная платформа биллинга и проведения платежей . Лицензия: Apache 2 , рейтинг github’а – 902.
- Activiti это легковесная система управления бизнес-процессами (Business Process Management (BPM) Platform ) . Лицензия: Apache 2 , рейтинг github’а – 861.
- Liferay Portal это свободная веб-платформа для построения бизнес-приложений . Лицензия: GNU Lesser 2.1, рейтинг github’а – 739.
- Broadleaf Commerce – eCommerce-фреймворк для крупных предприятий, основанный на Spring. Лицензия: Apache 2 , рейтинг github’а – 518.
- Droolsjbpm Drools это приложение Business Rules Management System (BRMS), которое реализует Business Rules Engine (BRE), предоставляет механизмы авторизации, управления правилами (rules), управление приложением (Drools Workbench) и плагин для разработки под Eclipse IDE.. Лицензия: Apache 2 , рейтинг github’а – 421.
- Spring Roo — фреймворк с открытым исходным кодом для быстрого создания бизнес-приложений на Java. Полученные в результате приложения используют общие технологии Java, такие как Spring Framework, Java Persistence API, JSP, Apache Maven и AspectJ. Spring Roo является частью проекта Spring.. Лицензия: Apache 2 , рейтинг github’а – 399.
- Apache OFBiz Apache OFBiz (The Apache Open For Business Project) это открытый и свободный фреймворк для автоматизации бизнес процессов больших предприятий, включает в себя компоненты ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), E-Business / E-Commerce, SCM (Supply Chain Management), MRP (Manufacturing Resource Planning), MMS/EAM (Maintenance Management System/Enterprise Asset Management), POS (Point Of Sale). License: Apache 2.
- Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языков программирования. Лицензия: Apache 2.
- Apache ODE Apache ODE это реализация WS-BPEL спецификации, которая позволяет описывать бизнес-процессы и веб сервисы для создания enterprise приложений. Лицензия: Apache 2.
5. Игровые фреймворки (Game Development)
К оглавлению
- libgdx Кроссплатформенный фреймворк для разработки игр на основе OpenGL (ES), работает под Windows, Linux, Mac OS X, Android, iOS и в браузерах с WebGL. Лицензия: Apache 2 , рейтинг github’а – 6579.
- Disunity Экспериментальный набор инструментов для Unity asset и asset bundle files. Лицензия: unlicense.org, рейтинг github’а – 828.
- lwjgl-basics lwjgl-basics это минималистская shader-based библиотека для создания 2D LWJGL sprite игр.https://libgdx.badlogicgames.com/. Лицензия: ?, рейтинг github’а – 656.
- jMonkeyEngine jMonkeyEngine это 3D игровой движок для Java разработчиков. http://jmonkeyengine.org/ Лицензия: BSD 3, рейтинг github’а – 624.
- Jetserver Jetserver высокоскоростной nio сокет Java сервер для multiplayer игр созданный используя Netty и Mike Rettig Jetlang. Лицензия: MIT , рейтинг github’а – 484.
- LWJGL 2.X LWJGL 2.X — Легковесная игровая библиотека на Java. http://www.lwjgl.org/ Лицензия: BSD 3, рейтинг github’а – 394.
- Ardor3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: zlib.
- DimensioneX Multiplayer Engine – Игровой движок псевдо-3D броузерных игр. Известные игры: Underworld Online. Лицензия: GPL
- PlayN Игровой фреймворк для Java работающий на Windows, Linux, HTML5, Android и iOS. Известные игры: Angry Birds Chrome. Лицензия: Apache 2.0. github star – 97.
- Env3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: GPL
- Jake2 Java порт игрового движка Quake II. Лицензия: GPL
- Jogre – JOGRE (Java Online Gaming Real-time Engine) открытый, онлайн, движок реального времени с API работающим только на Java. Лицензия: GPL
- Elflight Engine – платный движок для веб игр. Лицензия: Proprietary
6. Полезные библиотеки
К оглавлению
Коллекции, структуры данных и методы работы с ними
- Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции и методы работы с ними. Работает с JDK1.6 и выше. Лицензия: Apache 2 , рейтинг github’а – 3813.
- Apache Commons Collections – Реализует различные дополнительные коллекции и методы работы с ними. Лицензия: Apache 2
- Gs collections Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Переименована в Eclipse Collections. Лицензия: Apache 2 , рейтинг github’а – 1201.
- Eclipse Collections (в прошлом Gs collections). Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Лицензия: Eclipse Public 1.0. , рейтинг github’а – 1201.
- javatuples – Кортежи (Tuples), Лицензия: Apache 2
- Immutables – Добавляет Scala-подобные классы, Лицензия: Apache 2
- OpenHFT Chronicle Queue Chronicle Queue работает так же как обычная Java очередь, однако каждое события сохраняется на жесткий диск. Лицензия: GNU Lesser 3.0, рейтинг github’а – 440.
- fastutil – Быстрые и компактные типобезопасные коллекции. Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека работы с примитивными коллекциями. Лицензия: GNU Lesser 2.1.
Date and Time
- Библиотеки для обработки даты и времени.*
- Almanac Converter – простые преобразования между различными календарными системами. Лицензия: Apache 2
- Joda-Time – Joda Time это широко распространенная замена стандартных классов date и time в Java. Де-факто стандартная библиотеки даты и времени до появления Java 8. Лицензия: Apache 2, рейтинг github’а – 1442.
- ThreeTenBP – Порт с JSR 310 (java.time package) от автора Joda-Time, Лицензия: BSD 3
- Time4J – Продвинутая библиотека работы с датой и временем. Лицензия: GNU Lesser 2.1
- Ocpsoft Prettytime PrettyTime это библиотека форматирования Java date в выражение на натуральном языке и в формате принятом в социальных сетях (Digg, Twitter, and Facebook) и более чем на 30 человеческих языках. Лицензия: Apache 2 , рейтинг github’а – 394.
Dependency Injection и AОП-фреймворки
Бибилиотеки и фреймворки, которые реализуют парадигму Inversion of Control.
- [Spring Framework](https://github.com/spring-projects/spring-framew ork) Spring — наверное, самый распространенный фреймворк Java в мире, который в том числе реализует Dependency Injection. Лицензия: Apache 2 , рейтинг github’а – 5921.
- Dagger и Dagger2 Быстрый и легковесный фреймворк для реализации dependency injector для Android и Java, работающий во время компиляции, а не во времени выполнения, и не использующий рефлексию. Реализует Java спецификацию JSR-330, описывающую dependency injection. Лицензия: Apache 2 , рейтинг github’а – 3607, на stackoverflow – 800 вопросов.
- Google Guice – Guice (произносится ‘juice’) это легковесный dependency injection фреймворк для Java 6 и выше, созданный Google. Легкий, но мощный фреймворк, из которого получился Dagger. Лицензия: Apache 2, рейтинг github’а – 1881.
- Apache DeltaSpike – фреймворк расширяющий CDI, Лицензия: Apache 2
- HK2 – Легкий и динамичный dependency injection фреймворк, GNU 2/ CDDL 1.0
- AspectJ – Аспектно-ориентированное расширение, легко встраиваемое в существующие приложения, Лицензия: Eclipse Public 1.0
Работа с консолью и командной строкой
- jcommander Библиотека для парсинга параметров командных строк. http://jcommander.org/ Лицензия: Apache 2 , рейтинг github’а – 445.
- Jline это java библиотека для работы с консолью (ввод, редактирование в emacs и vi режимах), также как библиотеки Readline и Editline, однако при этом так как Jline почти полностью написана на Java является полностью платформонезависимой. Лицензия: BSD 4, рейтинг github’а – 396.
- args4j – Парсер командной строки. Лицензия: MIT
- CRaSH – Реализует интерпретатор командной строки (CLI) для запущенных процессов. Лицензия: GNU Lesser 2.1
Функциональное программирование
- Библиотеки, реализующие функциональное программирование.*
- Retrolambda Поддержка лямбда выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2 , рейтинг github’а – 1059.
- Javaslang – Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, рейтинг github’а – 791. Лицензия: Apache 2.
- jOO? – Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, рейтинг github’а – 523. Лицензия: Apache 2.
- Functional Java – Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github’а – 478.
- Cyclops React – Платформа для функционального и реактивного программирования для Java 8 и выше. Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое. Рейтинг github’а – 372. Лицензия: MIT
- Fugue – Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
- TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure’s), в частности с последовательностями (map, filter, fold/reduce…), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д. , Лицензия: Apache 2, рейтинг github’а – 76.
- derive4j – Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, рейтинг github’а – 106. Лицензия: GNU 3
Реактивное программирование
Библиотеки для разработки reactive приложений.
- ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX. Лицензия: Apache 2 , рейтинг github’а – 6279, на stackoverflow – 1814 вопросов.
- Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия: Eclipse Public 1 / Apache 2 , рейтинг github’а – 3743, на stackoverflow – 728 вопросов.
- Reactive Streams – Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github’а – 769.
- Reactor – Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
К оглавлению
- libgdx Кроссплатформенный фреймворк для разработки игр на основе OpenGL (ES), работает под Windows, Linux, Mac OS X, Android, iOS и в браузерах с WebGL. Лицензия: Apache 2 , рейтинг github’а – 6579.
- Disunity Экспериментальный набор инструментов для Unity asset и asset bundle files. Лицензия: unlicense.org, рейтинг github’а – 828.
- lwjgl-basics lwjgl-basics это минималистская shader-based библиотека для создания 2D LWJGL sprite игр.https://libgdx.badlogicgames.com/. Лицензия: ?, рейтинг github’а – 656.
- jMonkeyEngine jMonkeyEngine это 3D игровой движок для Java разработчиков. http://jmonkeyengine.org/ Лицензия: BSD 3, рейтинг github’а – 624.
- Jetserver Jetserver высокоскоростной nio сокет Java сервер для multiplayer игр созданный используя Netty и Mike Rettig Jetlang. Лицензия: MIT , рейтинг github’а – 484.
- LWJGL 2.X LWJGL 2.X — Легковесная игровая библиотека на Java. http://www.lwjgl.org/ Лицензия: BSD 3, рейтинг github’а – 394.
- Ardor3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: zlib.
- DimensioneX Multiplayer Engine – Игровой движок псевдо-3D броузерных игр. Известные игры: Underworld Online. Лицензия: GPL
- PlayN Игровой фреймворк для Java работающий на Windows, Linux, HTML5, Android и iOS. Известные игры: Angry Birds Chrome. Лицензия: Apache 2.0. github star – 97.
- Env3D – 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: GPL
- Jake2 Java порт игрового движка Quake II. Лицензия: GPL
- Jogre – JOGRE (Java Online Gaming Real-time Engine) открытый, онлайн, движок реального времени с API работающим только на Java. Лицензия: GPL
- Elflight Engine – платный движок для веб игр. Лицензия: Proprietary
6. Полезные библиотеки
К оглавлению
Коллекции, структуры данных и методы работы с ними
- Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции и методы работы с ними. Работает с JDK1.6 и выше. Лицензия: Apache 2 , рейтинг github’а – 3813.
- Apache Commons Collections – Реализует различные дополнительные коллекции и методы работы с ними. Лицензия: Apache 2
- Gs collections Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Переименована в Eclipse Collections. Лицензия: Apache 2 , рейтинг github’а – 1201.
- Eclipse Collections (в прошлом Gs collections). Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Лицензия: Eclipse Public 1.0. , рейтинг github’а – 1201.
- javatuples – Кортежи (Tuples), Лицензия: Apache 2
- Immutables – Добавляет Scala-подобные классы, Лицензия: Apache 2
- OpenHFT Chronicle Queue Chronicle Queue работает так же как обычная Java очередь, однако каждое события сохраняется на жесткий диск. Лицензия: GNU Lesser 3.0, рейтинг github’а – 440.
- fastutil – Быстрые и компактные типобезопасные коллекции. Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека работы с примитивными коллекциями. Лицензия: GNU Lesser 2.1.
Date and Time
- Библиотеки для обработки даты и времени.*
- Almanac Converter – простые преобразования между различными календарными системами. Лицензия: Apache 2
- Joda-Time – Joda Time это широко распространенная замена стандартных классов date и time в Java. Де-факто стандартная библиотеки даты и времени до появления Java 8. Лицензия: Apache 2, рейтинг github’а – 1442.
- ThreeTenBP – Порт с JSR 310 (java.time package) от автора Joda-Time, Лицензия: BSD 3
- Time4J – Продвинутая библиотека работы с датой и временем. Лицензия: GNU Lesser 2.1
- Ocpsoft Prettytime PrettyTime это библиотека форматирования Java date в выражение на натуральном языке и в формате принятом в социальных сетях (Digg, Twitter, and Facebook) и более чем на 30 человеческих языках. Лицензия: Apache 2 , рейтинг github’а – 394.
Dependency Injection и AОП-фреймворки
Бибилиотеки и фреймворки, которые реализуют парадигму Inversion of Control.
- [Spring Framework](https://github.com/spring-projects/spring-framew ork) Spring — наверное, самый распространенный фреймворк Java в мире, который в том числе реализует Dependency Injection. Лицензия: Apache 2 , рейтинг github’а – 5921.
- Dagger и Dagger2 Быстрый и легковесный фреймворк для реализации dependency injector для Android и Java, работающий во время компиляции, а не во времени выполнения, и не использующий рефлексию. Реализует Java спецификацию JSR-330, описывающую dependency injection. Лицензия: Apache 2 , рейтинг github’а – 3607, на stackoverflow – 800 вопросов.
- Google Guice – Guice (произносится ‘juice’) это легковесный dependency injection фреймворк для Java 6 и выше, созданный Google. Легкий, но мощный фреймворк, из которого получился Dagger. Лицензия: Apache 2, рейтинг github’а – 1881.
- Apache DeltaSpike – фреймворк расширяющий CDI, Лицензия: Apache 2
- HK2 – Легкий и динамичный dependency injection фреймворк, GNU 2/ CDDL 1.0
- AspectJ – Аспектно-ориентированное расширение, легко встраиваемое в существующие приложения, Лицензия: Eclipse Public 1.0
Работа с консолью и командной строкой
- jcommander Библиотека для парсинга параметров командных строк. http://jcommander.org/ Лицензия: Apache 2 , рейтинг github’а – 445.
- Jline это java библиотека для работы с консолью (ввод, редактирование в emacs и vi режимах), также как библиотеки Readline и Editline, однако при этом так как Jline почти полностью написана на Java является полностью платформонезависимой. Лицензия: BSD 4, рейтинг github’а – 396.
- args4j – Парсер командной строки. Лицензия: MIT
- CRaSH – Реализует интерпретатор командной строки (CLI) для запущенных процессов. Лицензия: GNU Lesser 2.1
Функциональное программирование
- Библиотеки, реализующие функциональное программирование.*
- Retrolambda Поддержка лямбда выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2 , рейтинг github’а – 1059.
- Javaslang – Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, рейтинг github’а – 791. Лицензия: Apache 2.
- jOO? – Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, рейтинг github’а – 523. Лицензия: Apache 2.
- Functional Java – Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github’а – 478.
- Cyclops React – Платформа для функционального и реактивного программирования для Java 8 и выше. Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое. Рейтинг github’а – 372. Лицензия: MIT
- Fugue – Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
- TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure’s), в частности с последовательностями (map, filter, fold/reduce…), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д. , Лицензия: Apache 2, рейтинг github’а – 76.
- derive4j – Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, рейтинг github’а – 106. Лицензия: GNU 3
Реактивное программирование
Библиотеки для разработки reactive приложений.
- ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX. Лицензия: Apache 2 , рейтинг github’а – 6279, на stackoverflow – 1814 вопросов.
- Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия: Eclipse Public 1 / Apache 2 , рейтинг github’а – 3743, на stackoverflow – 728 вопросов.
- Reactive Streams – Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github’а – 769.
- Reactor – Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
- Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции и методы работы с ними. Работает с JDK1.6 и выше. Лицензия: Apache 2 , рейтинг github’а – 3813.
- Apache Commons Collections – Реализует различные дополнительные коллекции и методы работы с ними. Лицензия: Apache 2
- Gs collections Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Переименована в Eclipse Collections. Лицензия: Apache 2 , рейтинг github’а – 1201.
- Eclipse Collections (в прошлом Gs collections). Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Лицензия: Eclipse Public 1.0. , рейтинг github’а – 1201.
- javatuples – Кортежи (Tuples), Лицензия: Apache 2
- Immutables – Добавляет Scala-подобные классы, Лицензия: Apache 2
- OpenHFT Chronicle Queue Chronicle Queue работает так же как обычная Java очередь, однако каждое события сохраняется на жесткий диск. Лицензия: GNU Lesser 3.0, рейтинг github’а – 440.
- fastutil – Быстрые и компактные типобезопасные коллекции. Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека работы с примитивными коллекциями. Лицензия: GNU Lesser 2.1.
Date and Time
- Библиотеки для обработки даты и времени.*
- Almanac Converter – простые преобразования между различными календарными системами. Лицензия: Apache 2
- Joda-Time – Joda Time это широко распространенная замена стандартных классов date и time в Java. Де-факто стандартная библиотеки даты и времени до появления Java 8. Лицензия: Apache 2, рейтинг github’а – 1442.
- ThreeTenBP – Порт с JSR 310 (java.time package) от автора Joda-Time, Лицензия: BSD 3
- Time4J – Продвинутая библиотека работы с датой и временем. Лицензия: GNU Lesser 2.1
- Ocpsoft Prettytime PrettyTime это библиотека форматирования Java date в выражение на натуральном языке и в формате принятом в социальных сетях (Digg, Twitter, and Facebook) и более чем на 30 человеческих языках. Лицензия: Apache 2 , рейтинг github’а – 394.
Dependency Injection и AОП-фреймворки
Бибилиотеки и фреймворки, которые реализуют парадигму Inversion of Control.
- [Spring Framework](https://github.com/spring-projects/spring-framew ork) Spring — наверное, самый распространенный фреймворк Java в мире, который в том числе реализует Dependency Injection. Лицензия: Apache 2 , рейтинг github’а – 5921.
- Dagger и Dagger2 Быстрый и легковесный фреймворк для реализации dependency injector для Android и Java, работающий во время компиляции, а не во времени выполнения, и не использующий рефлексию. Реализует Java спецификацию JSR-330, описывающую dependency injection. Лицензия: Apache 2 , рейтинг github’а – 3607, на stackoverflow – 800 вопросов.
- Google Guice – Guice (произносится ‘juice’) это легковесный dependency injection фреймворк для Java 6 и выше, созданный Google. Легкий, но мощный фреймворк, из которого получился Dagger. Лицензия: Apache 2, рейтинг github’а – 1881.
- Apache DeltaSpike – фреймворк расширяющий CDI, Лицензия: Apache 2
- HK2 – Легкий и динамичный dependency injection фреймворк, GNU 2/ CDDL 1.0
- AspectJ – Аспектно-ориентированное расширение, легко встраиваемое в существующие приложения, Лицензия: Eclipse Public 1.0
Работа с консолью и командной строкой
- jcommander Библиотека для парсинга параметров командных строк. http://jcommander.org/ Лицензия: Apache 2 , рейтинг github’а – 445.
- Jline это java библиотека для работы с консолью (ввод, редактирование в emacs и vi режимах), также как библиотеки Readline и Editline, однако при этом так как Jline почти полностью написана на Java является полностью платформонезависимой. Лицензия: BSD 4, рейтинг github’а – 396.
- args4j – Парсер командной строки. Лицензия: MIT
- CRaSH – Реализует интерпретатор командной строки (CLI) для запущенных процессов. Лицензия: GNU Lesser 2.1
Функциональное программирование
- Библиотеки, реализующие функциональное программирование.*
- Retrolambda Поддержка лямбда выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2 , рейтинг github’а – 1059.
- Javaslang – Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, рейтинг github’а – 791. Лицензия: Apache 2.
- jOO? – Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, рейтинг github’а – 523. Лицензия: Apache 2.
- Functional Java – Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github’а – 478.
- Cyclops React – Платформа для функционального и реактивного программирования для Java 8 и выше. Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое. Рейтинг github’а – 372. Лицензия: MIT
- Fugue – Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
- TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure’s), в частности с последовательностями (map, filter, fold/reduce…), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д. , Лицензия: Apache 2, рейтинг github’а – 76.
- derive4j – Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, рейтинг github’а – 106. Лицензия: GNU 3
Реактивное программирование
Библиотеки для разработки reactive приложений.
- ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX. Лицензия: Apache 2 , рейтинг github’а – 6279, на stackoverflow – 1814 вопросов.
- Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия: Eclipse Public 1 / Apache 2 , рейтинг github’а – 3743, на stackoverflow – 728 вопросов.
- Reactive Streams – Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github’а – 769.
- Reactor – Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
Бибилиотеки и фреймворки, которые реализуют парадигму Inversion of Control.
- [Spring Framework](https://github.com/spring-projects/spring-framew ork) Spring — наверное, самый распространенный фреймворк Java в мире, который в том числе реализует Dependency Injection. Лицензия: Apache 2 , рейтинг github’а – 5921.
- Dagger и Dagger2 Быстрый и легковесный фреймворк для реализации dependency injector для Android и Java, работающий во время компиляции, а не во времени выполнения, и не использующий рефлексию. Реализует Java спецификацию JSR-330, описывающую dependency injection. Лицензия: Apache 2 , рейтинг github’а – 3607, на stackoverflow – 800 вопросов.
- Google Guice – Guice (произносится ‘juice’) это легковесный dependency injection фреймворк для Java 6 и выше, созданный Google. Легкий, но мощный фреймворк, из которого получился Dagger. Лицензия: Apache 2, рейтинг github’а – 1881.
- Apache DeltaSpike – фреймворк расширяющий CDI, Лицензия: Apache 2
- HK2 – Легкий и динамичный dependency injection фреймворк, GNU 2/ CDDL 1.0
- AspectJ – Аспектно-ориентированное расширение, легко встраиваемое в существующие приложения, Лицензия: Eclipse Public 1.0
Работа с консолью и командной строкой
- jcommander Библиотека для парсинга параметров командных строк. http://jcommander.org/ Лицензия: Apache 2 , рейтинг github’а – 445.
- Jline это java библиотека для работы с консолью (ввод, редактирование в emacs и vi режимах), также как библиотеки Readline и Editline, однако при этом так как Jline почти полностью написана на Java является полностью платформонезависимой. Лицензия: BSD 4, рейтинг github’а – 396.
- args4j – Парсер командной строки. Лицензия: MIT
- CRaSH – Реализует интерпретатор командной строки (CLI) для запущенных процессов. Лицензия: GNU Lesser 2.1
Функциональное программирование
- Библиотеки, реализующие функциональное программирование.*
- Retrolambda Поддержка лямбда выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2 , рейтинг github’а – 1059.
- Javaslang – Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, рейтинг github’а – 791. Лицензия: Apache 2.
- jOO? – Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, рейтинг github’а – 523. Лицензия: Apache 2.
- Functional Java – Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github’а – 478.
- Cyclops React – Платформа для функционального и реактивного программирования для Java 8 и выше. Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое. Рейтинг github’а – 372. Лицензия: MIT
- Fugue – Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
- TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure’s), в частности с последовательностями (map, filter, fold/reduce…), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д. , Лицензия: Apache 2, рейтинг github’а – 76.
- derive4j – Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, рейтинг github’а – 106. Лицензия: GNU 3
Реактивное программирование
Библиотеки для разработки reactive приложений.
- ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX. Лицензия: Apache 2 , рейтинг github’а – 6279, на stackoverflow – 1814 вопросов.
- Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия: Eclipse Public 1 / Apache 2 , рейтинг github’а – 3743, на stackoverflow – 728 вопросов.
- Reactive Streams – Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github’а – 769.
- Reactor – Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
- Библиотеки, реализующие функциональное программирование.*
- Retrolambda Поддержка лямбда выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2 , рейтинг github’а – 1059.
- Javaslang – Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, рейтинг github’а – 791. Лицензия: Apache 2.
- jOO? – Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, рейтинг github’а – 523. Лицензия: Apache 2.
- Functional Java – Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github’а – 478.
- Cyclops React – Платформа для функционального и реактивного программирования для Java 8 и выше. Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое. Рейтинг github’а – 372. Лицензия: MIT
- Fugue – Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
- TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure’s), в частности с последовательностями (map, filter, fold/reduce…), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д. , Лицензия: Apache 2, рейтинг github’а – 76.
- derive4j – Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, рейтинг github’а – 106. Лицензия: GNU 3
Реактивное программирование
Библиотеки для разработки reactive приложений.
- ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX. Лицензия: Apache 2 , рейтинг github’а – 6279, на stackoverflow – 1814 вопросов.
- Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия: Eclipse Public 1 / Apache 2 , рейтинг github’а – 3743, на stackoverflow – 728 вопросов.
- Reactive Streams – Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github’а – 769.
- Reactor – Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
К оглавлению
- Scribe Java – простая OAuth библиотека для Java. Лицензия: MIT , рейтинг github’а – 2731.
- Spring security oauth – добавление методов авторизации OAuth1(a) и OAuth2 для Spring веб-приложений. Лицензия: Apache 2 , рейтинг github’а – 916.
- Jasig CAS (Central Authentication Service) – обеспечивает стандартный механизм аутентификации пользователей для веб-приложений . Лицензия: Apache 2 , рейтинг github’а – 740.
- Spring security — Spring фреймворк для авторизации и управления пользователями и безопасностью приложений. Лицензия: Apache 2 , рейтинг github’а – 732.
- Play Authenticate – аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2 , рейтинг github’а – 646.
- Apache Shiro – Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами. Лицензия: Apache 2.
- Bouncy Castle – Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME. Лицензия: MIT.
- Cryptomator – Мультиплатформенное клиент-ориентирование шифрование файлов в облаке. Лицензия: MIT.
- Google Keyczar – Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями. Лицензия: Apache 2.
- Keycloak – Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: Apache 2.
- PicketLink – Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- Apache Oltu ( больше не поддерживается ) Реализация OAuth протокола для Java. Лицензия: Apache 2.
- Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность
Все для высокопроизводительных решений – от коллекций до специальных библиотек. К оглавлению
- Agrona – Структуры данных и функции, которые будут полезны для высоконагруженных приложений. Лицензия: Apache 2.
- Disruptor – библиотека обеспечивающая межпоточный обмен сообщениями. Лицензия: Apache 2.
- fastutil – Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
- GS Collections – Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
- HPPC – Фреймворк по работе с примитивными коллекциями. Лицензия: Apache 2.
- Javolution – Библиотека для систем реального времени и встроенных систем. Лицензия: BSD 2.
- JCTools – Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK. Лицензия: Apache 2.
- Koloboke – Фреймворк по работе с быстрыми Hash sets и hash maps. Лицензия: Apache 2.
- Trove – Библиотека для работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
К оглавлению
- Square Okio Современный I/O API для Java. Лицензия: Apache 2 , рейтинг github’а – 1243.
- Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 1073.
- Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений бинарного формата для систем требующих очень короткого времени ответа. Лицензия: Apache 2 , рейтинг github’а – 612.
- MessagePack – реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2 , рейтинг github’а – 448.
- FlatBuffers – Библиотека сериализации (оптимизированая на сокращение затрат памяти), которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
- FST – JDK-совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
- Kryo – Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирование
К оглавлению
- Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github’а – 1308.
- logback надежный, универсальный, быстрый и гибкий фреймворк для логирования в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github’а – 497.
- slf4j Библиотека предлагает Facade-логирование для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT , рейтинг github’а – 384.
- Apache Log4j 2 – Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
- graylog – Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
- Elastic Kibana – Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
- Elastic Logstash – Инструменты для управления файлами логов, Лицензия: Apache 2.
- Metrics – Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
- tinylog – Легкий фреймворк логирования со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation). К оглавлению
- Dozer – Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом), используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github’а – 421.
- MapStruct – Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга. Лицензия: Apache 2.
- ModelMapper – ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие. Лицензия: Apache 2.
- Orika – Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
- Selma – Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациях классов, Лицензия: Apache 2.
- Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.
7. Изображения и Видео
К оглавлению
- Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github’а – 2219.
- Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github’а – 1896.
- JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java . Лицензия: Apache 2 , рейтинг github’а – 503.
- imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2 , рейтинг github’а – 451.
- webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT , рейтинг github’а – 437.
- Thumbnailator – Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
- zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2 , рейтинг github’а – 5314.
8. Кодогенерация и изменения байт кода
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
Libraries to manipulate bytecode programmatically. К оглавлению
- Google Auto – коллекция генераторов исходного кода в Java.. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Square Javapoet – библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2 , рейтинг github’а – 1057.
- Byte buddy – динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2 , рейтинг github’а – 473.
- ASM – Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
- Byteman – Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
- Javassist – Попытка упростить редактирование байткода, , Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
- ADT4J – JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
- Auto – Коллекция генераторов исходного кода, Лицензия: Apache 2
- JHipster – генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
- cglib – Библиотека генерации байткода, Лицензия: Apache 2.
9. Фреймворки для создания распределенных и отказоустойчивых приложений
Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений. К оглавлению
- Akka – Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
- Apache Storm – Система вычислений в режиме реального времени, Лицензия: Apache 2.
- Apache ZooKeeper – Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
- Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2 , рейтинг github’а – 1917.
- Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2 , рейтинг github’а – 1158.
- Axon Framework – Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
- Hazelcast – Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
- Netflix Hystrix – Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github’а – 3571. Лицензия: Apache 2.
- JGroups – Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
- Orbit – Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
- Quasar – Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
- Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков.. Лицензия: Eclipse Public 1.0, рейтинг github’а – 504.
- JADE – Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
- Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
- Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.
- [Lagom] – Реактивные микросервисы для JVM. https://lightbend.com/lagom , рейтинг github’а – 558. Лицензия: Apache 2.
10. Наука
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
Библиотеки для научных расчетов и анализа. К оглавлению
- DataMelt – Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
- JGraphT – Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
- JScience – Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
- Michael Thomas Flanagan’s Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan . Лицензия: только для некомерческого использования, без права распостраненния исходного кода.
11. OSGI
- ACE – distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
- Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
- Felix OSGi фреймворк. Лицензия: Apache 2.
- Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.
- Equinox Реализация OSGI спецификации от Eclipse. License: EPL
- Eclipse Virgo OSGI фреймворк для приложений, которые построены на Spring. Есть поставки вместе с web серверами. License: EPL
II. Базы данных, поисковые системы, Big data и машинное обучение
1. Базы данных и хранилища
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
К оглавлению
- Thinkaurelius Titan – распределенная графовая база данных. Лицензия: Apache 2 , рейтинг github’а – 2846.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github’а – 1880.
- Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github’а – 1787.
- Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2 , рейтинг github’а – 1484.
- Voldemort свободный клон Amazon’s Dynamo, распределенное key-value хранилище. Лицензия: Apache 2 , рейтинг github’а – 1480.
- Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2 , рейтинг github’а – 1459.
- Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
- Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2 , рейтинг github’а – 1167.
- Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github’а – 1083.
- Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поискового движка. Лицензия: Apache 2 , рейтинг github’а – 1069.
- Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями. . Лицензия: Apache 2 , рейтинг github’а – 970.
- Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github’а – 951.
- Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/ .Лицензия: Apache 2 , рейтинг github’а – 925.
- Linkedin Pinot Linkedin pinot – Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени.. Лицензия: Apache 2 , рейтинг github’а – 854.
- Solandra Solandra – распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra.. Лицензия: Apache 2 , рейтинг github’а – 808.
- Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись . Лицензия: GNU AGPLv3, рейтинг github’а – 586.
- Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2 , рейтинг github’а – 525.
- Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra. . Лицензия: Apache 2 , рейтинг github’а – 485.
- Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 464.
- Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github’а – 464.
- Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 448.
- Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro. . Лицензия: BSD 3, рейтинг github’а – 402.
- Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT , рейтинг github’а – 396.
- Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 394.
- H2 – Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
- Apache Derby – Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: Apache 2.
- Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
- Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.
Распределенные базы данных.
- Apache Cassandra – зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью . Лицензия: Apache 2 , рейтинг github’а – 2155.
- Apache HBase – Hadoop хранилище для больших данных. Лицензия: Apache 2.
- Druid – это column-oriented хранилище и система обработки в реальном времени для обработки потоковых и пакетной информации и интегрированная с Samza, Kafka, Storm, and Hadoop. Лицензия: Apache 2, рейтинг github’а – 1846.
- Infinispan – Высокопроизводительное key/value хранилише, используемое для кэширования. Лицензия: Apache 2.
- OpenTSDB – это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github’а – 1336.
2. Структуры данных
Efficient and specific data structures.
- Apache Avro – Формат обмена данными с такими возможностями как: динамическая типизация, отсутствия необходимости устанавливать ID вручную, untagged data, Лицензия: Apache 2.
- Apache Orc – Быстрый и эффективный столбчатый (сolumnar) формат хранения данных для работы в основанных на hadoop системах, Лицензия: Apache 2.
- Apache Parquet – столбчатый (сolumnar) формат хранения данных основанный на использовании алгоритмов из “Dremel paper” от Google, Лицензия: Apache 2.
- Apache Thrift – Формат обмена данными, созданный в Facebook, Лицензия: Apache 2.
- Persistent Collection – Persistent и неизменямый аналог Java Collections Framework, Лицензия: MIT.
- Protobuf – Формат обмена данными, предложенный Google, Лицензия: BSD 3.
- SBE – Simple Binary Encoding, один из самых быстрых форматов обмена сообщениями, Лицензия: Apache 2.
- Wire – Чистый, легковесный protocol buffers, Лицензия: Apache 2.
3. Поисковые системы
К оглавлению
- Elasticsearch – одна из самых популярных систем распределенного облачного поиска. Распределенная, mультиарендная (multitenant-capable) полнотекстовая поисковая система с RESTful веб интерфейсом, не требующая схемы данных, основанная на JSON документах. . Лицензия: Apache 2 , рейтинг github’а – 11833.
- Linkedin Indextank Engine Проект IndexTank это поисковый движок, поддерживающий возможности вроде переменных (boosts), категорий (facets), предложения, автокомплит и т. п.. Лицензия: Apache 2 , рейтинг github’а – 788.
- Apache Solr Зеркало Apache Solr. Apache Solr это поисковый сервер, основанный на Apache Lucene поисковой библиотеке, данный поисковый движок оптимизирован для высоконагруженных систем. . Лицензия: Apache 2 , рейтинг github’а – 486.
- Linkedin Cleo Linkedin Cleo это гибкое библиотека для создания умных подсказок поиска.. Лицензия: Apache 2 , рейтинг github’а – 478.
- Elasticsearch cloud aws Плагин для работы ElasticSearch с Amazon Web Service (AWS) облаками. Лицензия: Apache 2 , рейтинг github’а – 435.
- Elasticsearch analysis ik The IK Analysis плагин интеграции с Lucene IK анализаторов для elastic search, поддерживающий пользовательские словари. Лицензия: ?, рейтинг github’а – 395.
- Apache ManifoldCF – приложение для передачи данных между репозиториями и поисковыми индексами разных систем. Лицензия: Apache 2 , рейтинг github’а – 435.
- Lemur Project Lemur проект разрабоатывает поисковый движок, анализатор текста, плагин браузеров, включает Indri search engine и ClueWeb09 dataset. Лицензия: BSD License
- YaCy – Поисковая система YaCy, рейтинг github’а – 127. Лицензия: часть классов под GNU Lesser, часть под GNU
4. Клиенты и драйверы баз данных
К оглавлению
- Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). . Лицензия: Apache 2 , рейтинг github’а – 3603.
- Jedis Невероятно маленький и эффективный Redis Java клиент. Лицензия: MIT , рейтинг github’а – 2495.
- Tinkerpop Gremlin это язык для работы с графами и разными графическими базами данных (обхода графов, запросы к графам, манипуляции и т. п.).. Лицензия: BSD 3 , рейтинг github’а – 1370.
- Mongodb Java Driver Java клиент для MongoDB . Лицензия: Apache 2 / Creative Commons Attribution , рейтинг github’а – 1276.
- Yahoo Mysql_perf_analyzer Анализатор производительности MySQL. Лицензия: Apache 2 , рейтинг github’а – 1082.
- Airbnb Airpal Веб UI для PrestoDB. Лицензия: Apache 2 , рейтинг github’а – 1074.
- Mongodb hadoop MongoDB клиент для интеграции с Hadoop. Лицензия: ?, рейтинг github’а – 937.
- Elasticsearch jdbc JDBC поддержка для Elasticsearch. Лицензия: Apache 2 , рейтинг github’а – 867.
- Flyway — инструмент по миграции баз данных . http://flywaydb.org/ . Лицензия: Apache 2 , рейтинг github’а – 851.
- Elasticsearch river mongodb – MongoDB River Plugin для ElasticSearch, использует MongoDB как хранилище для ElasticSearch. Лицензия: Apache 2 , рейтинг github’а – 794.
- Netflix Astyanax Cassandra Java клиент. Лицензия: Apache 2 , рейтинг github’а – 735.
- Liquibase Liquibase — система, позволяющая проводить миграции и обновления баз данных, генерировать SQL скрипты, документацию изменений баз данных, проводить рефакторинг и т. д. http://www.liquibase.org/ . Лицензия: Apache 2 , рейтинг github’а – 734.
- Mongodb Morphia Библиотека для простой сериализации объектов Java в документы MongoDB . Лицензия: Apache 2 , рейтинг github’а – 725.
- Couchdb lucene Полнотекстовый поиск CouchDB документов, используя Lucene. Лицензия: Apache 2 , рейтинг github’а – 639.
- Forcedotcom Phoenix Phoenix это SQL оболочка поверх Hbase с JDBC драйвером. Phoenix обеспечивает очень быстрый отклик (в течении миллисекунд), в отличии от пакетных операций map/reduce. Лицензия: BSD 3 , рейтинг github’а – 507.
- Variety Анализатор схемы MongoDB. Лицензия: MIT , рейтинг github’а – 505.
- Redisson Redisson — добавляет Java структуры данных (Set, SortedSet, Map, ConcurrentMap, List, Queue, BlockingQueue, Deque, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog, Redis pipelining) в Redis сервер. И является высокопроизводительным и неблокирующим Java Redis клиентом. Лицензия: Apache 2 , рейтинг github’а – 483.
- Netflix Priam Co-Process это набор инструментов для работы с Cassandra (архимирование и востановление, работа с токенами и т. д.). Лицензия: Apache 2 , рейтинг github’а – 481.
- Datastax Java driver Java клиент для Apache Cassandra и DataStax. Лицензия: Apache 2 , рейтинг github’а – 480.
- Memcached Java Client java клиент для memcached. Лицензия: BSD 4, рейтинг github’а – 436.
- Spring data mongodb Java клиент к MongoDB для фреймворка Spring . Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Phoenix – Высокопроизводительный слой для реляционных баз данных поверх HBase для систем с минимальным откликом, Лицензия: Apache 2.
- FlexyPool – Добавляет метрики и отказоустойчивые стратегии для наиболее популярных пулов соединией с базами данных, Лицензия: Apache 2.
- LightAdmin – Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
- Jaybird JCA/JDBC driver – JCA-JDBC драйвер для Firebird базы данных, github, github’s star – 19. Лицензия: GNU Lesser 2.1,
- dbeaver – Инструмент для доступа к базе данных для разработчиков, SQL программистов, администраторов баз данных и аналитиков . http://dbeaver.jkiss.org. , github’s star – 473. Лицензия: GNU 2.
5. Маппинг объектов в базы данных (ORM и т. п.)
К оглавлению
- HikariCP HikariCP — быстрая, надежная и легкая библиотека для создания JDBC connection pool с минимальными накладными расходами. Лицензия: Apache 2 , рейтинг github’а – 1542.
- Mybatis 3 MyBatis это фреймворк маппинга Java объектов в базы данных. Соединяет Java объектами с определенными хранимыми процедурами или sql запросами. Лицензия: Apache 2 , рейтинг github’а – 1428.
- Hibernate orm Hibernate’s ORM фреймворк, один из самых популярных в Java, надежный, проверенный и широкоиспользуемый фреймворк с большим и активным сообществом. http://hibernate.org/orm/ Лицензия: GNU Lesser 2.1, рейтинг github’а – 1275.
- JOOQ JOOQ — решение по простой интеграции и мапингу Java приложений с популярными базами данных, такими как Oracle, Microsoft SQL Server, IBM DB2, или SAP Sybase. http://www.jooq.org/ . Лицензия: Apache 2 , рейтинг github’а – 830.
- Querydsl Querydsl это Java фреймворк позволяющий конструировать типобезопасные SQL-подобные запросы для множества backends включая JPA, MongoDB и SQL. http://www.querydsl.com/ . Лицензия: Apache 2 , рейтинг github’а – 570.
- Kundera ORM поддерживающий спецификации JPA 2.1 для полиглот маппинга в различные NoSQL хранилища. Лицензия: Apache 2 , рейтинг github’а – 490.
- Spring data jpa Spring Data Jpa – обертка Spring фреймворка над JPa провайдерами . Лицензия: Apache 2 , рейтинг github’а – 459.
- Jdbi jDBI предлагает удобный интерфейс над SQL операциями в Java. http://jdbi.org/ .Лицензия: Apache 2 , рейтинг github’а – 458.
- ActiveJDBCActiveJDBC это Java реализация Active Record шаблона проектирования. Вдохновлен ActiveRecord ORM в Ruby on Rails.. Лицензия: Apache 2 , рейтинг github’а – 230.
- Vibur DBCP – Библиотека реализующая JDBC пул соединений с дополнительными средствами мониторинга производительности, Лицензия: Apache 2.
- Ebean – Предоставляет простой и быстрой доступ к данным, Лицензия: Apache 2.
- EclipseLink – Поддерживает большое количество стандартов ORM: JPA, JAXB, JCA и SDO, Лицензия: Eclipse Public License v1.0 и BSD 3.
- OrmLite – Легковесный пакет избегающий усложнений и перерасхода ресурсов других ORM решений, , Лицензия: ISC.
- Apache Cayenne Простая в использовании Java ORM. Лицензия: Apache 2.
- Apache OpenJPA Реализация Java Persistence API спецификации. Лицензия: Apache 2.
- Apache MetaModel Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.
6. Системы, для обработки данных (работа с грязными данными, анализ и т.п.)
К оглавлению
- Storm – распределенная и устойчивая к ошибкам обработка данных в реальном времени: потоковая обработка, непрерывные вычисления, распределенный RPC и другое. Лицензия: Apache 2 , рейтинг github’а – 8636.
- OpenRefine — инструменты для обработки «грязных» плохо структурированных данных и улучшения их. Выполняет очистку данных, преобразование, связывает с базой данных и позволяет обращаться к данным с помощью web сервисов. Лицензия: BSD , рейтинг github’а – 2939.
- Addthis Stream lib – библиотека Java для групповых операций на потоковыми данными, таких как оценка мощности (подсчет количества элементов), определение членов множества, оценка частоты, получения первых N элементов и т.п.. Лицензия: Apache 2 , рейтинг github’а – 1145.
- HdrHistogram (A High Dynamic Range (HDR) Histogram ) — выполняет запись данных, их анализ и построение сложных графиков (Histogram) . Лицензия: BSD 2 , рейтинг github’а – 672.
- HazyResearch DeepDive это система выделения значений из темных данных. Темные данные, как темная материя, имеют большой вес из текста, таблиц, графиков и изображений и не имеют четкой структуры, что делает их почти не обрабатываемыми обычными способами . Лицензия: Apache 2 , рейтинг github’а – 531.
- Apache Incubator Zeppelin это расположенный в веб notebook (записная книжка?), который позволяет проводить анализ данных, их визуализацию и создавать документы, содержащие SQL, Scala и т.п. . Лицензия: Apache 2 , рейтинг github’а – 463.
- Seldon Server предоставляет реализацию REST API интерфейса для выдачи рекомендаций по контенту и аналитических предсказаний. Лицензия: Apache 2 , рейтинг github’а – 453.
- Pulsar – открытая аналитическая платформа, работающая в реальном времени. Лицензия: GNU 2.0, рейтинг github’а – 435.
- Suro: Netflix’s Data Pipeline — это сервис для сбора, агрегации и управления большим количеством разнообразных событий, включая данные логов. . Лицензия: Apache 2 , рейтинг github’а – 405.
- Apache UIMA Annotator components and a scalable integration and deployment framework for Unstructured Information analysis. Лицензия: Apache 2.
7. Большие данные (big data)
К оглавлению
Фреймворки и библиотеки
- Apache Storm – зеркало для Apache Storm — свободную и распределенную систему обработки данных в реальном времени, аналог Hadoop, но для быстрой потоковой обработки данных, может использоваться с любым языком программирования.. Лицензия: Apache 2 , рейтинг github’а – 2098.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata . Лицензия: Apache 2 , рейтинг github’а – 1725.
- Cloudera Oryx это простая инфраструктура, обеспечивающая высоко нагруженную систему машинного обучения, анализа и выдачи прогнозов в режиме реального времени, работающая с Apache Hadoop, HTTP REST API и реализующая lambda architecture. . Лицензия: Apache 2 , рейтинг github’а – 1142.
- Twitter Elephant bird – набор коллекций и алгоритмов от Twitter’а, для работы с Hadoop lzo, Apache Thrift, Hadoop, Pig, Hive, и HBase.. Лицензия: Apache 2 , рейтинг github’а – 861.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata. Лицензия: Apache 2 , рейтинг github’а – 803.
- Google Mr4c это фрейворк, который позволяет запускать нативный код в Hadoop. Лицензия: GNU Lesser 3, рейтинг github’а – 702.
- Alibaba Jstorm — распределенная и устойчивая к ошибкам система вычисления результатов в реальном времени, вдохновленная Apache Storm,.. Лицензия: Apache 2 , рейтинг github’а – 654.
- Etsy Oculus находит аномальную корреляцию компонент системы Kale system. После того, как вы ввыбрали интересную или аномальную метрику, Oculus найдете все другие метрики в вашей системе, которые выглядят похоже.. Лицензия: MIT , рейтинг github’а – 618.
- Linkedin Datafu это Hadoop библиотека для крупномасштабных систем обработки данных, на данный момент это проект в Apache Incubator . Лицензия: Apache 2 , рейтинг github’а – 570.
- Linkedin Gobblin это универсальный интеграционный фреймворк работающий на Hadoop для получения, трансформации и загрузки большого количества данных в различные источники данных, такие как базы данных, rest APIs, FTP/SFTP сервера и т.д. . Лицензия: Apache 2 , рейтинг github’а – 547.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. Лицензия: Apache 2 , рейтинг github’а – 475.
- Oryx 2 – реализация лямбда архитектуры для Apache Spark и Apache Kafka, но со специализацией на машинном обучении в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 456.
- Yahoo SAMOA (Scalable Advanced Massive Online Analysis) — открытая платформа для потоковой обработки больших данных (mining big data). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Curator Набор Java библиотека, которые облегчают использование Apache ZooKeeper.Лицензия: Apache 2.
- Apache Hama Hama это эффективный и легко расширяемый универсальный BSP computing движок.Лицензия: Apache 2.
- Apache Falcon Платформа управления данными и вычислениями для Hadoop.Лицензия: Apache 2.
- Apache Knox A REST API Gateway for Hadoop Services. Лицензия: Apache 2.
- Apache Flume Apache Flume это распределенная, надежная и доступная система для эффективного сбора, агрегации и сохранения больших объемов логов из множества различных источников в централизованное хранилище данных. Лицензия: Apache 2.
- Apache Tajo Tajo это система обработки больших данных в Hadoop для обработки web-scale набора данных. Лицензия: Apache 2.
- Apache Tez Фреймвор для обработки сколь угодно сложных направленных ациклических графов (DAGs) в задачах обработки данных. Лицензия: Apache 2.
- Apache REEF Apache REEF (Retainable Evaluator Execution Framework) это маштабируемый фреймворк, который облегчает разработку Big Data приложений на основе менеджеров ресурсов таких как Apache YARN или Mesos. Лицензия: Apache 2.
- Apache Pig Apache Pig это платформа для анализа больших наборов данных в Hadoop. Лицензия: Apache 2.
Хранилища, базы данных, Sql-подобные движки, поисковые система для big data
- Druid это column-oriented хранилище и система обработки в реальном времени для обработки потоковых и пакетной информации и интегрированная с Samza, Kafka, Storm, and Hadoop. Лицензия: Apache 2 , рейтинг github’а – 1846.
- Apache Hive – зеркало Apache Hive. Фреймворк для созданий SQL подобного языка запросов для Hadoop. https://hive.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 619.
- Apache Kylin это открытая распределенная аналитическая система, которая обеспечивает SQL интерфейс и OLAP отчеты для Hadoop.. Лицензия: Apache 2 , рейтинг github’а – 504.
- Elasticsearch hadoop – интеграция поиска и анализ ElasticSearch в Hadoop. Лицензия: Apache 2 , рейтинг github’а – 457.
- Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). Лицензия: Apache 2 , рейтинг github’а – 3603.
- Apache MetaModel Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.
- Apache Accumulo Apache Accumulo основана на идее BigTable, предложенной Google, и работает на Apache Hadoop, Zookeeper и Thrift. Лицензия: Apache 2.
- Apache Gora предлагает in-memory модель данных с маппингов в big data. Gora подерживает маппинг в column stores, key value stores, document stores и RDBMSs. Лицензия: Apache 2.
- [Apache Sqoop] Apache Sqoop(TM) инструмент для переноса данных между Apache Hadoop и хранилищами данных, таких как реляционный базы данных.(http://sqoop.apache.org) Лицензия: Apache 2.
- Giraph Apache Giraph это система обработи графов, построенная над Hadoop. Лицензия: Apache 2.
- Impala – Запросы в реальном времени к Hadoop. рейтинг github’а: 1550 Лицензия: Apache 2.
Мониторинг, тестирование и управления кластерами big data серверов
- Twitter Ambrose это платформа для визуализации и мониторинга в реальном времени MapReduce data workflows. . Лицензия: Apache 2 , рейтинг github’а – 1024.
- Umongo – десктопное приложение для просмотра и управления вашим MongoDB кластером. Лицензия: Apache 2 , рейтинг github’а – 495.
- Apache Ambari Упрощает управление и мониторинг Apache Hadoop clusters. Предоставляет веб UI интерфейс и RESTful APIs. Лицензия: Apache 2.
- Apache Chukwa Chukwa это открытая систнам для мониторига больших распределенных систем. Лицензия: Apache 2.
- Apache Bigtop Bigtop это проект для Infrastructure Engineers и Data Scientists котокрые ищут инструменты для тестирования, конфигурирования и управления big date компонентами. Лицензия: Apache 2.
- Apache BookKeeper BookKeeper это replicated система логирования для big datar. Лицензия: Apache 2.
- Apache Crunch Предоставляет фреймворк для написания, тестирования и запуска MapReduce pipelines. Лицензия: Apache 2.
- Apache MRUnit Apache MRUnit это Java библиотека для создания unit тестов, для тестирования Apache Hadoop map reduce jobs. Лицензия: Apache 2.
- Apache Oozie Oozie это workflow система расписания для управления Apache Hadoop jobs. Лицензия: Apache 2.
8. Машинное обучение и нейроные сети (Machine Learning)
К оглавлению
- Airbnb Aerosolve Библиотека для машинного обучения, дружелюбная к пользователям (простая в настройке и т. п.). Лицензия: Apache 2 , рейтинг github’а – 1672.
- Smile SmileMiner (Statistical Machine Intelligence and Learning Engine) – набор Java библиотек различных алгоритмов машинного обучения. Hello World examples. Лицензия: Apache 2 , рейтинг github’а – 1519.
- Deeplearning4j Deep Learning нейронная сеть, написанная на Java и Scala, с интеграцией с Hadoop, Spark и другими backends, которые могут работать как с центральным, так и с графическим процессором. http://deeplearning4j.org/ .Лицензия: Apache 2 , рейтинг github’а – 1172.
- Libsvm “Libsvm это библиотека для мамашиного обучения на основе support vector machines (support vector networks), поддерживает SVM classification and regression, C-SVM classification, nu-SVM classification, one-class-SVM, epsilon-SVM regression, and nu-SVM Regression. Лицензия: BSD 3, рейтинг github’а – 812.
- Neuralnetworks Алгоритмы машинного обучения и нейронных сетей с использованием GPU процессора. Лицензия: MIT , рейтинг github’а – 583.
- Datumbox framework Datumbox это фреймворк для быстрой разработки систем машинного обучения и анализа статистики. Лицензия: Apache 2 , рейтинг github’а – 525.
- Apache Mahout Зеркало Apache Mahout. Задачей проекта Apache Mahout™ является создание окружения для быстрой разработки масштабируемых и производительных систем машинного обучения. Реализует хорошо расширяемые алгоритмы машинного обучения специализированные на применении фильтрации, кластеризации и классификации. https://mahout.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 492.
- Encog java core Encog это фреймворк для машинного обучения предоставляющий большое число алгоритмов и технологий машинного обучения (нейронные сети, генетические алгоритмы и т. д.). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. https://flink.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 475.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata (больших данных с помощью кластеров на простом железе). http://hadoop.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 803.
- Apache Spark – Фреймворк для анализа данных, используя класстер для вычислений, Подпроект: MLlib – библиотека машинного обучения для Spark.Лицензия: Apache 2.
- DeepDive – Создает структурированную информацию из неструктурированных данных и интегрирует её с существующими базами данных, Лицензия: Creative Commons Attribution 4.0.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata.http://h2o.ai/ Лицензия: Apache 2 , рейтинг github’а – 1725.
- JSAT – Алгоритмы для пре-процессинга, классификация, регрессия, и кластеризация поддерживающие многопоточное выыполнение, Лицензия: GNU 3.
- Weka – Коллекция алгоритмов для data mining задач от пре-процессинга до визуализации, Лицензия: GNU.
- Protege – Реализует редактов онтология и фреймворк для экспертных систем, Лицензия: BSD 2
- EvA2 – Фреймворк для использования эволюционных алгоритмов- ранее известный как JavaEvA/EvA. Лицензия: GNU Lesser 3.
- htm.java – Hierarchical Temporal Memory implementation in Java – это официальный сделанный сообществом порт Numenta Platform for Intelligent Computing (NuPIC). Лицензия: AGPL 3 или платная лицензия для комерческого использования.
- JAVA-ML – Java Machine Learning Library (Java-ML). Лицензия: GNU 2
- JSAT – Набор алгоритмов машинного обучения для классификации, регрессионного анализа и кластеризации. Лицензия: GNU 3
- Meka – Открытая реализация методов multi-label классификации и оценки (расширение для Weka). Лицензия: GNU
- Neuroph – Neuroph это легковесный фреймворк по создания нейронной сети на Java. Лицензия: Apache 2.
- rapaio – Набор инструментов для статистического анализа, data mining и машинного обучения на Java. Лицензия: Apache 2.
- Apache SystemML – Гибкий, маштабируемый язык машииного обучения. (incubator project). Лицензия: Apache 2.
- wAlnut – Объектно ориентированная модель для частичного моделирования человеческого мыщления. Лицензия: GNU 3
Semantic Web и Linked Data
Semantic Web (он же Web of Data, Linked Data, Linking Open Data) — это направление развития Всемирной паутины, позволяющее машинам не только отображать информацию в интернете, но и понимать ее смысл.
- Apache Marmotta Открытая платформа для работы с Linked Data. Лицензия: Apache 2.
- Apache Jena Фреймворк для разработки Semantic Web и Linked Data приложений на Java. Лицензия: Apache 2.
Constraint Satisfaction Problem Solver
Библиотеки, которые помогают в такой задачи искусственного интеллекта (ИИ) как удовлетворения ограничений (УО) (constraint satisfaction problem).
- Choco – Полностью готовая “с полки” система по решению задачи удовлетворения ограничений (УО) (constraint satisfaction problem), используя constraint programming технологии, Лицензия: BSD.
- JaCoP – Включает в себя интерфейс для языка FlatZinc, что позволяет ему выполнять модели MiniZinc, Лицензия: неизвестна
- OptaPlanner – Решает задачи бизнес планирования и оптимизации ресурсов, Лицензия: Apache 2.
- Sat4J – Наиболее продвинутый SAT решатель для логических (? boolean) и оптимизационых проблем, Лицензия: GNU Lesser 3 и Eclipse Public 1.0.
Работа с естественными языками (NLP) и распознавание речи
К оглавлению
- Stanfordnlp CoreNLP Stanford CoreNLP: Java библиотека для работы с Stanford NLP (инструментами для анализа и работы с текстом на естественных языках, например английским). Hello World examples. Лицензия: GNU 2, рейтинг github’а – 871.
- Apache OpenNLP – Набор инструментов для типовых задач таких как tokenization. Hello World examples. Лицензия: Apache 2.
- LingPipe – Набор инструментов для различных видов задач от POS tagging до анализа предложений, Лицензия: AGPL и платная лицензия, проприетарная. ИЛИ
- Mallet – Статистическая обработка естественных языков, классификация документов, кластеризация, topic modeling и многое другое, Лицензия: Eclipse Public License v1.0.
- Twitter Text Libraries – Коллекция библиотек и тестов для парсинга текста твитов(tweet). Лицензия: Apache 2.
- NLP4J NLP4J проект (старое название ClearNLP) предоставляет набор NLP инструментов для JVM языков. Этот проект разрабатывается в NLP Research Group из Emory University. Лицензия: Apache 2.
- Joshua Joshua – система машинного перевода, написанная на Java. Разработана Human Language Technology Center of Excellence at Johns Hopkins University. Лицензия: BSD 2.
- Z-MERT Z-MERT – система машинного перевода. Лицензия: GNU Lesser General Public License (LGPL).
- ClearTK – ClearTK – фреймворк для разработки систем machine learning и natural language processing которые реализаует Apache Unstructured Information Management Architecture, github star: 34. Лицензия: Apache 2.
- Apache cTAKES – Apache cTAKES™ это NLP система для получения данных из медицинской документации. Лицензия: Apache 2.
- The Stanford Natural Language Processing Group – Набор различных NLP инструментов, написанных на Java. Подпроекты: Stanford Parser – A statistical parser, Stanford POS Tagger, Stanford Named Entity Recognizer, RegexNER, Word Segmenter,Classifier,EnglishTokenizer,TokensRegex,Temporal Tagger,Pattern-based Information Extraction and Diagnostics,Stanford Relation Extractor. Лицензия: GNU 2/3.
- Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
- CMU Sphinx – Библиотека для распознавания речи. Лицензия: BSD 3.
III. Работа с сетью и интеграция
1. Веб сервера и сервера приложений (web server & application server)
К оглавлению
- Wildfly – сервер приложений (Application Server), ранее известный как JBOSS, разработанный Red Hat с расширенной поддержки Java EE. Лицензия: GNU Lesser 2.1, рейтинг github’а – 1386.
- Undertow io Undertow – высокопроизводительный неблокирующий вебсервер. Лицензия: Apache 2 , рейтинг github’а – 721.
- Apache Tomcat – зеркало Apache Tomcat — открытый web сервер с поддержкой сервлетов, jsp и некоторых аспектов J2EE. Проверенный и всесторонний сервер для сервлет и jsp. Лицензия: Apache 2 , рейтинг github’а – 531.
- Nginx clojure – Nginx модуль с использованием Clojure или Java или Groovy программ. Лицензия: BSD 3 , рейтинг github’а – 514.
- Eclipse Jetty.project – Http сервер и контейнер сервлетов. Легкий, маленький сервер, часто встраиваемый (embedded) в приложения. Лицензия: Eclipse Public 1.0 / Apache 2.0, рейтинг github’а – 512.
- Apache TomEE – Apache Tomcat сервер к которому добавили поддержку Java EE, Лицензия: Apache 2.
- WebSphere Liberty – Легковесный, модульный сервер, разработанный IBM, Лицензия: платная, проприетарная
- GlassFish – Сервер приложений и образцовая реализация Java EE от Oracle, Лицензия: GNU 2 или CDDL 1.0
- Apache Geronimo Java EE Application Server. Лицензия: Apache 2.
- Apache James Apache Java Enterprise Mail Server (или Apache James) это 100% чистый Java SMTP и POP3 постовый сервер и NNTP News сервер. Лицензия: Apache 2.
2. Сеть и сокеты
К оглавлению
- Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2 , рейтинг github’а – 4847.
- Netty socketio Реализация Socket.IO сервера на Java. Основан на Netty фреймворке, служит для обеспечение работы с сетевыми соединениями и сокетами. Лицензия: Apache 2 , рейтинг github’а – 754.
- Grpc java gRPC-Java это реализация RPC библиотеки и фреймворка на Java. Лицензия: BSD 3, рейтинг github’а – 753.
- Socket.io java client Реализация Socket.IO клиента на Java. Лицензия: MIT , рейтинг github’а – 688.
- Socket.io client.java Полнофункциональная Socket.IO клиентская библиотека для Java, совместимая с Socket.IO v1.0 и выше.. Лицензия: MIT , рейтинг github’а – 603.
- EsotericSoftware Kryonet TCP/UDP клиентская и серверная библиотека для Java, основанная на Kryo. Лицензия: BSD 3, рейтинг github’а – 539.
- Async Http Client – Ассинхронная HTTP и вебсокет клиентская библиотека, Лицензия: Apache 2.
- Comsat – Интегрирует стандартный Java веб API c Quasar fibers и actors, Лицензия: Eclipse Public 1.0.
- Grizzly – NIO фреймворк. Использует как сетевой слой в Glassfish, Лицензия: GNU 2 и CDDL 1.1.
- OkHttp – HTTP+SPDY клиент, Лицензия: Apache 2.
- Undertow – Вебсервер, предоставляющий блокирующий и неблокирующий API, основанный на NIO. Используется как сетевой слой в WildFly, Лицензия: Apache 2.
- Apache MINA Apache MINA это фреймворк для создания быстрых сетевых приложений используя Java NIO. Лицензия: Apache 2.
- Apache HttpComponents проект для создания и поддержки низкоуровневых Java компонент работающих на HTTP, Java NIO и т.п. Лицензия: Apache 2.
3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
К оглавлению
- LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2 , рейтинг github’а – 3137.
- Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github’а – 1414.
- Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.).. Лицензия: Apache 2 , рейтинг github’а – 1103.
- JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д.. Лицензия: GNU 3, рейтинг github’а – 834.
- Metamorphosis Высокопроизводительная распределенная система обмена сообщениями . Лицензия: Apache 2 , рейтинг github’а – 580.
- Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2 , рейтинг github’а – 470.
- Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github’а – 415.
- Aeron – Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
- Apache ActiveMQ – Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
- Apache Camel – Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
- Apache Kafka – High-throughput distributed messaging system, Лицензия: Apache 2.
- Hermes – Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
- JBoss HornetQ – Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
- Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2 , рейтинг github’а – 426.
- Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
- Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
- Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.
4. Работа с http и ssh
К оглавлению
- Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5022.
- AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java . Лицензия: Apache 2 , рейтинг github’а – 2149.
- Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия: MIT . , рейтинг github’а – 1477.
- Nanohttpd Крошечный и простой embeddable HTTP сервер для Java.. Лицензия: BSD 3, рейтинг github’а – 1184.
- Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2 , рейтинг github’а – 1172.
- Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации. . Лицензия: Apache 2 , рейтинг github’а – 987.
- Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT , рейтинг github’а – 857.
- Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github’а – 648.
- Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека.. Лицензия: MIT , рейтинг github’а – 537.
- Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2 , рейтинг github’а – 500.
- Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2 , рейтинг github’а – 485.
5. Работа с rest
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
К оглавлению
- Elasticsearch – одна из самых популярных систем распределенного облачного поиска. Распределенная, mультиарендная (multitenant-capable) полнотекстовая поисковая система с RESTful веб интерфейсом, не требующая схемы данных, основанная на JSON документах. . Лицензия: Apache 2 , рейтинг github’а – 11833.
- Linkedin Indextank Engine Проект IndexTank это поисковый движок, поддерживающий возможности вроде переменных (boosts), категорий (facets), предложения, автокомплит и т. п.. Лицензия: Apache 2 , рейтинг github’а – 788.
- Apache Solr Зеркало Apache Solr. Apache Solr это поисковый сервер, основанный на Apache Lucene поисковой библиотеке, данный поисковый движок оптимизирован для высоконагруженных систем. . Лицензия: Apache 2 , рейтинг github’а – 486.
- Linkedin Cleo Linkedin Cleo это гибкое библиотека для создания умных подсказок поиска.. Лицензия: Apache 2 , рейтинг github’а – 478.
- Elasticsearch cloud aws Плагин для работы ElasticSearch с Amazon Web Service (AWS) облаками. Лицензия: Apache 2 , рейтинг github’а – 435.
- Elasticsearch analysis ik The IK Analysis плагин интеграции с Lucene IK анализаторов для elastic search, поддерживающий пользовательские словари. Лицензия: ?, рейтинг github’а – 395.
- Apache ManifoldCF – приложение для передачи данных между репозиториями и поисковыми индексами разных систем. Лицензия: Apache 2 , рейтинг github’а – 435.
- Lemur Project Lemur проект разрабоатывает поисковый движок, анализатор текста, плагин браузеров, включает Indri search engine и ClueWeb09 dataset. Лицензия: BSD License
- YaCy – Поисковая система YaCy, рейтинг github’а – 127. Лицензия: часть классов под GNU Lesser, часть под GNU
4. Клиенты и драйверы баз данных
К оглавлению
- Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). . Лицензия: Apache 2 , рейтинг github’а – 3603.
- Jedis Невероятно маленький и эффективный Redis Java клиент. Лицензия: MIT , рейтинг github’а – 2495.
- Tinkerpop Gremlin это язык для работы с графами и разными графическими базами данных (обхода графов, запросы к графам, манипуляции и т. п.).. Лицензия: BSD 3 , рейтинг github’а – 1370.
- Mongodb Java Driver Java клиент для MongoDB . Лицензия: Apache 2 / Creative Commons Attribution , рейтинг github’а – 1276.
- Yahoo Mysql_perf_analyzer Анализатор производительности MySQL. Лицензия: Apache 2 , рейтинг github’а – 1082.
- Airbnb Airpal Веб UI для PrestoDB. Лицензия: Apache 2 , рейтинг github’а – 1074.
- Mongodb hadoop MongoDB клиент для интеграции с Hadoop. Лицензия: ?, рейтинг github’а – 937.
- Elasticsearch jdbc JDBC поддержка для Elasticsearch. Лицензия: Apache 2 , рейтинг github’а – 867.
- Flyway — инструмент по миграции баз данных . http://flywaydb.org/ . Лицензия: Apache 2 , рейтинг github’а – 851.
- Elasticsearch river mongodb – MongoDB River Plugin для ElasticSearch, использует MongoDB как хранилище для ElasticSearch. Лицензия: Apache 2 , рейтинг github’а – 794.
- Netflix Astyanax Cassandra Java клиент. Лицензия: Apache 2 , рейтинг github’а – 735.
- Liquibase Liquibase — система, позволяющая проводить миграции и обновления баз данных, генерировать SQL скрипты, документацию изменений баз данных, проводить рефакторинг и т. д. http://www.liquibase.org/ . Лицензия: Apache 2 , рейтинг github’а – 734.
- Mongodb Morphia Библиотека для простой сериализации объектов Java в документы MongoDB . Лицензия: Apache 2 , рейтинг github’а – 725.
- Couchdb lucene Полнотекстовый поиск CouchDB документов, используя Lucene. Лицензия: Apache 2 , рейтинг github’а – 639.
- Forcedotcom Phoenix Phoenix это SQL оболочка поверх Hbase с JDBC драйвером. Phoenix обеспечивает очень быстрый отклик (в течении миллисекунд), в отличии от пакетных операций map/reduce. Лицензия: BSD 3 , рейтинг github’а – 507.
- Variety Анализатор схемы MongoDB. Лицензия: MIT , рейтинг github’а – 505.
- Redisson Redisson — добавляет Java структуры данных (Set, SortedSet, Map, ConcurrentMap, List, Queue, BlockingQueue, Deque, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog, Redis pipelining) в Redis сервер. И является высокопроизводительным и неблокирующим Java Redis клиентом. Лицензия: Apache 2 , рейтинг github’а – 483.
- Netflix Priam Co-Process это набор инструментов для работы с Cassandra (архимирование и востановление, работа с токенами и т. д.). Лицензия: Apache 2 , рейтинг github’а – 481.
- Datastax Java driver Java клиент для Apache Cassandra и DataStax. Лицензия: Apache 2 , рейтинг github’а – 480.
- Memcached Java Client java клиент для memcached. Лицензия: BSD 4, рейтинг github’а – 436.
- Spring data mongodb Java клиент к MongoDB для фреймворка Spring . Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Phoenix – Высокопроизводительный слой для реляционных баз данных поверх HBase для систем с минимальным откликом, Лицензия: Apache 2.
- FlexyPool – Добавляет метрики и отказоустойчивые стратегии для наиболее популярных пулов соединией с базами данных, Лицензия: Apache 2.
- LightAdmin – Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
- Jaybird JCA/JDBC driver – JCA-JDBC драйвер для Firebird базы данных, github, github’s star – 19. Лицензия: GNU Lesser 2.1,
- dbeaver – Инструмент для доступа к базе данных для разработчиков, SQL программистов, администраторов баз данных и аналитиков . http://dbeaver.jkiss.org. , github’s star – 473. Лицензия: GNU 2.
5. Маппинг объектов в базы данных (ORM и т. п.)
К оглавлению
- HikariCP HikariCP — быстрая, надежная и легкая библиотека для создания JDBC connection pool с минимальными накладными расходами. Лицензия: Apache 2 , рейтинг github’а – 1542.
- Mybatis 3 MyBatis это фреймворк маппинга Java объектов в базы данных. Соединяет Java объектами с определенными хранимыми процедурами или sql запросами. Лицензия: Apache 2 , рейтинг github’а – 1428.
- Hibernate orm Hibernate’s ORM фреймворк, один из самых популярных в Java, надежный, проверенный и широкоиспользуемый фреймворк с большим и активным сообществом. http://hibernate.org/orm/ Лицензия: GNU Lesser 2.1, рейтинг github’а – 1275.
- JOOQ JOOQ — решение по простой интеграции и мапингу Java приложений с популярными базами данных, такими как Oracle, Microsoft SQL Server, IBM DB2, или SAP Sybase. http://www.jooq.org/ . Лицензия: Apache 2 , рейтинг github’а – 830.
- Querydsl Querydsl это Java фреймворк позволяющий конструировать типобезопасные SQL-подобные запросы для множества backends включая JPA, MongoDB и SQL. http://www.querydsl.com/ . Лицензия: Apache 2 , рейтинг github’а – 570.
- Kundera ORM поддерживающий спецификации JPA 2.1 для полиглот маппинга в различные NoSQL хранилища. Лицензия: Apache 2 , рейтинг github’а – 490.
- Spring data jpa Spring Data Jpa – обертка Spring фреймворка над JPa провайдерами . Лицензия: Apache 2 , рейтинг github’а – 459.
- Jdbi jDBI предлагает удобный интерфейс над SQL операциями в Java. http://jdbi.org/ .Лицензия: Apache 2 , рейтинг github’а – 458.
- ActiveJDBCActiveJDBC это Java реализация Active Record шаблона проектирования. Вдохновлен ActiveRecord ORM в Ruby on Rails.. Лицензия: Apache 2 , рейтинг github’а – 230.
- Vibur DBCP – Библиотека реализующая JDBC пул соединений с дополнительными средствами мониторинга производительности, Лицензия: Apache 2.
- Ebean – Предоставляет простой и быстрой доступ к данным, Лицензия: Apache 2.
- EclipseLink – Поддерживает большое количество стандартов ORM: JPA, JAXB, JCA и SDO, Лицензия: Eclipse Public License v1.0 и BSD 3.
- OrmLite – Легковесный пакет избегающий усложнений и перерасхода ресурсов других ORM решений, , Лицензия: ISC.
- Apache Cayenne Простая в использовании Java ORM. Лицензия: Apache 2.
- Apache OpenJPA Реализация Java Persistence API спецификации. Лицензия: Apache 2.
- Apache MetaModel Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.
6. Системы, для обработки данных (работа с грязными данными, анализ и т.п.)
К оглавлению
- Storm – распределенная и устойчивая к ошибкам обработка данных в реальном времени: потоковая обработка, непрерывные вычисления, распределенный RPC и другое. Лицензия: Apache 2 , рейтинг github’а – 8636.
- OpenRefine — инструменты для обработки «грязных» плохо структурированных данных и улучшения их. Выполняет очистку данных, преобразование, связывает с базой данных и позволяет обращаться к данным с помощью web сервисов. Лицензия: BSD , рейтинг github’а – 2939.
- Addthis Stream lib – библиотека Java для групповых операций на потоковыми данными, таких как оценка мощности (подсчет количества элементов), определение членов множества, оценка частоты, получения первых N элементов и т.п.. Лицензия: Apache 2 , рейтинг github’а – 1145.
- HdrHistogram (A High Dynamic Range (HDR) Histogram ) — выполняет запись данных, их анализ и построение сложных графиков (Histogram) . Лицензия: BSD 2 , рейтинг github’а – 672.
- HazyResearch DeepDive это система выделения значений из темных данных. Темные данные, как темная материя, имеют большой вес из текста, таблиц, графиков и изображений и не имеют четкой структуры, что делает их почти не обрабатываемыми обычными способами . Лицензия: Apache 2 , рейтинг github’а – 531.
- Apache Incubator Zeppelin это расположенный в веб notebook (записная книжка?), который позволяет проводить анализ данных, их визуализацию и создавать документы, содержащие SQL, Scala и т.п. . Лицензия: Apache 2 , рейтинг github’а – 463.
- Seldon Server предоставляет реализацию REST API интерфейса для выдачи рекомендаций по контенту и аналитических предсказаний. Лицензия: Apache 2 , рейтинг github’а – 453.
- Pulsar – открытая аналитическая платформа, работающая в реальном времени. Лицензия: GNU 2.0, рейтинг github’а – 435.
- Suro: Netflix’s Data Pipeline — это сервис для сбора, агрегации и управления большим количеством разнообразных событий, включая данные логов. . Лицензия: Apache 2 , рейтинг github’а – 405.
- Apache UIMA Annotator components and a scalable integration and deployment framework for Unstructured Information analysis. Лицензия: Apache 2.
7. Большие данные (big data)
К оглавлению
Фреймворки и библиотеки
- Apache Storm – зеркало для Apache Storm — свободную и распределенную систему обработки данных в реальном времени, аналог Hadoop, но для быстрой потоковой обработки данных, может использоваться с любым языком программирования.. Лицензия: Apache 2 , рейтинг github’а – 2098.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata . Лицензия: Apache 2 , рейтинг github’а – 1725.
- Cloudera Oryx это простая инфраструктура, обеспечивающая высоко нагруженную систему машинного обучения, анализа и выдачи прогнозов в режиме реального времени, работающая с Apache Hadoop, HTTP REST API и реализующая lambda architecture. . Лицензия: Apache 2 , рейтинг github’а – 1142.
- Twitter Elephant bird – набор коллекций и алгоритмов от Twitter’а, для работы с Hadoop lzo, Apache Thrift, Hadoop, Pig, Hive, и HBase.. Лицензия: Apache 2 , рейтинг github’а – 861.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata. Лицензия: Apache 2 , рейтинг github’а – 803.
- Google Mr4c это фрейворк, который позволяет запускать нативный код в Hadoop. Лицензия: GNU Lesser 3, рейтинг github’а – 702.
- Alibaba Jstorm — распределенная и устойчивая к ошибкам система вычисления результатов в реальном времени, вдохновленная Apache Storm,.. Лицензия: Apache 2 , рейтинг github’а – 654.
- Etsy Oculus находит аномальную корреляцию компонент системы Kale system. После того, как вы ввыбрали интересную или аномальную метрику, Oculus найдете все другие метрики в вашей системе, которые выглядят похоже.. Лицензия: MIT , рейтинг github’а – 618.
- Linkedin Datafu это Hadoop библиотека для крупномасштабных систем обработки данных, на данный момент это проект в Apache Incubator . Лицензия: Apache 2 , рейтинг github’а – 570.
- Linkedin Gobblin это универсальный интеграционный фреймворк работающий на Hadoop для получения, трансформации и загрузки большого количества данных в различные источники данных, такие как базы данных, rest APIs, FTP/SFTP сервера и т.д. . Лицензия: Apache 2 , рейтинг github’а – 547.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. Лицензия: Apache 2 , рейтинг github’а – 475.
- Oryx 2 – реализация лямбда архитектуры для Apache Spark и Apache Kafka, но со специализацией на машинном обучении в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 456.
- Yahoo SAMOA (Scalable Advanced Massive Online Analysis) — открытая платформа для потоковой обработки больших данных (mining big data). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Curator Набор Java библиотека, которые облегчают использование Apache ZooKeeper.Лицензия: Apache 2.
- Apache Hama Hama это эффективный и легко расширяемый универсальный BSP computing движок.Лицензия: Apache 2.
- Apache Falcon Платформа управления данными и вычислениями для Hadoop.Лицензия: Apache 2.
- Apache Knox A REST API Gateway for Hadoop Services. Лицензия: Apache 2.
- Apache Flume Apache Flume это распределенная, надежная и доступная система для эффективного сбора, агрегации и сохранения больших объемов логов из множества различных источников в централизованное хранилище данных. Лицензия: Apache 2.
- Apache Tajo Tajo это система обработки больших данных в Hadoop для обработки web-scale набора данных. Лицензия: Apache 2.
- Apache Tez Фреймвор для обработки сколь угодно сложных направленных ациклических графов (DAGs) в задачах обработки данных. Лицензия: Apache 2.
- Apache REEF Apache REEF (Retainable Evaluator Execution Framework) это маштабируемый фреймворк, который облегчает разработку Big Data приложений на основе менеджеров ресурсов таких как Apache YARN или Mesos. Лицензия: Apache 2.
- Apache Pig Apache Pig это платформа для анализа больших наборов данных в Hadoop. Лицензия: Apache 2.
Хранилища, базы данных, Sql-подобные движки, поисковые система для big data
- Druid это column-oriented хранилище и система обработки в реальном времени для обработки потоковых и пакетной информации и интегрированная с Samza, Kafka, Storm, and Hadoop. Лицензия: Apache 2 , рейтинг github’а – 1846.
- Apache Hive – зеркало Apache Hive. Фреймворк для созданий SQL подобного языка запросов для Hadoop. https://hive.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 619.
- Apache Kylin это открытая распределенная аналитическая система, которая обеспечивает SQL интерфейс и OLAP отчеты для Hadoop.. Лицензия: Apache 2 , рейтинг github’а – 504.
- Elasticsearch hadoop – интеграция поиска и анализ ElasticSearch в Hadoop. Лицензия: Apache 2 , рейтинг github’а – 457.
- Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). Лицензия: Apache 2 , рейтинг github’а – 3603.
- Apache MetaModel Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.
- Apache Accumulo Apache Accumulo основана на идее BigTable, предложенной Google, и работает на Apache Hadoop, Zookeeper и Thrift. Лицензия: Apache 2.
- Apache Gora предлагает in-memory модель данных с маппингов в big data. Gora подерживает маппинг в column stores, key value stores, document stores и RDBMSs. Лицензия: Apache 2.
- [Apache Sqoop] Apache Sqoop(TM) инструмент для переноса данных между Apache Hadoop и хранилищами данных, таких как реляционный базы данных.(http://sqoop.apache.org) Лицензия: Apache 2.
- Giraph Apache Giraph это система обработи графов, построенная над Hadoop. Лицензия: Apache 2.
- Impala – Запросы в реальном времени к Hadoop. рейтинг github’а: 1550 Лицензия: Apache 2.
Мониторинг, тестирование и управления кластерами big data серверов
- Twitter Ambrose это платформа для визуализации и мониторинга в реальном времени MapReduce data workflows. . Лицензия: Apache 2 , рейтинг github’а – 1024.
- Umongo – десктопное приложение для просмотра и управления вашим MongoDB кластером. Лицензия: Apache 2 , рейтинг github’а – 495.
- Apache Ambari Упрощает управление и мониторинг Apache Hadoop clusters. Предоставляет веб UI интерфейс и RESTful APIs. Лицензия: Apache 2.
- Apache Chukwa Chukwa это открытая систнам для мониторига больших распределенных систем. Лицензия: Apache 2.
- Apache Bigtop Bigtop это проект для Infrastructure Engineers и Data Scientists котокрые ищут инструменты для тестирования, конфигурирования и управления big date компонентами. Лицензия: Apache 2.
- Apache BookKeeper BookKeeper это replicated система логирования для big datar. Лицензия: Apache 2.
- Apache Crunch Предоставляет фреймворк для написания, тестирования и запуска MapReduce pipelines. Лицензия: Apache 2.
- Apache MRUnit Apache MRUnit это Java библиотека для создания unit тестов, для тестирования Apache Hadoop map reduce jobs. Лицензия: Apache 2.
- Apache Oozie Oozie это workflow система расписания для управления Apache Hadoop jobs. Лицензия: Apache 2.
8. Машинное обучение и нейроные сети (Machine Learning)
К оглавлению
- Airbnb Aerosolve Библиотека для машинного обучения, дружелюбная к пользователям (простая в настройке и т. п.). Лицензия: Apache 2 , рейтинг github’а – 1672.
- Smile SmileMiner (Statistical Machine Intelligence and Learning Engine) – набор Java библиотек различных алгоритмов машинного обучения. Hello World examples. Лицензия: Apache 2 , рейтинг github’а – 1519.
- Deeplearning4j Deep Learning нейронная сеть, написанная на Java и Scala, с интеграцией с Hadoop, Spark и другими backends, которые могут работать как с центральным, так и с графическим процессором. http://deeplearning4j.org/ .Лицензия: Apache 2 , рейтинг github’а – 1172.
- Libsvm “Libsvm это библиотека для мамашиного обучения на основе support vector machines (support vector networks), поддерживает SVM classification and regression, C-SVM classification, nu-SVM classification, one-class-SVM, epsilon-SVM regression, and nu-SVM Regression. Лицензия: BSD 3, рейтинг github’а – 812.
- Neuralnetworks Алгоритмы машинного обучения и нейронных сетей с использованием GPU процессора. Лицензия: MIT , рейтинг github’а – 583.
- Datumbox framework Datumbox это фреймворк для быстрой разработки систем машинного обучения и анализа статистики. Лицензия: Apache 2 , рейтинг github’а – 525.
- Apache Mahout Зеркало Apache Mahout. Задачей проекта Apache Mahout™ является создание окружения для быстрой разработки масштабируемых и производительных систем машинного обучения. Реализует хорошо расширяемые алгоритмы машинного обучения специализированные на применении фильтрации, кластеризации и классификации. https://mahout.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 492.
- Encog java core Encog это фреймворк для машинного обучения предоставляющий большое число алгоритмов и технологий машинного обучения (нейронные сети, генетические алгоритмы и т. д.). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. https://flink.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 475.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata (больших данных с помощью кластеров на простом железе). http://hadoop.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 803.
- Apache Spark – Фреймворк для анализа данных, используя класстер для вычислений, Подпроект: MLlib – библиотека машинного обучения для Spark.Лицензия: Apache 2.
- DeepDive – Создает структурированную информацию из неструктурированных данных и интегрирует её с существующими базами данных, Лицензия: Creative Commons Attribution 4.0.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata.http://h2o.ai/ Лицензия: Apache 2 , рейтинг github’а – 1725.
- JSAT – Алгоритмы для пре-процессинга, классификация, регрессия, и кластеризация поддерживающие многопоточное выыполнение, Лицензия: GNU 3.
- Weka – Коллекция алгоритмов для data mining задач от пре-процессинга до визуализации, Лицензия: GNU.
- Protege – Реализует редактов онтология и фреймворк для экспертных систем, Лицензия: BSD 2
- EvA2 – Фреймворк для использования эволюционных алгоритмов- ранее известный как JavaEvA/EvA. Лицензия: GNU Lesser 3.
- htm.java – Hierarchical Temporal Memory implementation in Java – это официальный сделанный сообществом порт Numenta Platform for Intelligent Computing (NuPIC). Лицензия: AGPL 3 или платная лицензия для комерческого использования.
- JAVA-ML – Java Machine Learning Library (Java-ML). Лицензия: GNU 2
- JSAT – Набор алгоритмов машинного обучения для классификации, регрессионного анализа и кластеризации. Лицензия: GNU 3
- Meka – Открытая реализация методов multi-label классификации и оценки (расширение для Weka). Лицензия: GNU
- Neuroph – Neuroph это легковесный фреймворк по создания нейронной сети на Java. Лицензия: Apache 2.
- rapaio – Набор инструментов для статистического анализа, data mining и машинного обучения на Java. Лицензия: Apache 2.
- Apache SystemML – Гибкий, маштабируемый язык машииного обучения. (incubator project). Лицензия: Apache 2.
- wAlnut – Объектно ориентированная модель для частичного моделирования человеческого мыщления. Лицензия: GNU 3
Semantic Web и Linked Data
Semantic Web (он же Web of Data, Linked Data, Linking Open Data) — это направление развития Всемирной паутины, позволяющее машинам не только отображать информацию в интернете, но и понимать ее смысл.
- Apache Marmotta Открытая платформа для работы с Linked Data. Лицензия: Apache 2.
- Apache Jena Фреймворк для разработки Semantic Web и Linked Data приложений на Java. Лицензия: Apache 2.
Constraint Satisfaction Problem Solver
Библиотеки, которые помогают в такой задачи искусственного интеллекта (ИИ) как удовлетворения ограничений (УО) (constraint satisfaction problem).
- Choco – Полностью готовая “с полки” система по решению задачи удовлетворения ограничений (УО) (constraint satisfaction problem), используя constraint programming технологии, Лицензия: BSD.
- JaCoP – Включает в себя интерфейс для языка FlatZinc, что позволяет ему выполнять модели MiniZinc, Лицензия: неизвестна
- OptaPlanner – Решает задачи бизнес планирования и оптимизации ресурсов, Лицензия: Apache 2.
- Sat4J – Наиболее продвинутый SAT решатель для логических (? boolean) и оптимизационых проблем, Лицензия: GNU Lesser 3 и Eclipse Public 1.0.
Работа с естественными языками (NLP) и распознавание речи
К оглавлению
- Stanfordnlp CoreNLP Stanford CoreNLP: Java библиотека для работы с Stanford NLP (инструментами для анализа и работы с текстом на естественных языках, например английским). Hello World examples. Лицензия: GNU 2, рейтинг github’а – 871.
- Apache OpenNLP – Набор инструментов для типовых задач таких как tokenization. Hello World examples. Лицензия: Apache 2.
- LingPipe – Набор инструментов для различных видов задач от POS tagging до анализа предложений, Лицензия: AGPL и платная лицензия, проприетарная. ИЛИ
- Mallet – Статистическая обработка естественных языков, классификация документов, кластеризация, topic modeling и многое другое, Лицензия: Eclipse Public License v1.0.
- Twitter Text Libraries – Коллекция библиотек и тестов для парсинга текста твитов(tweet). Лицензия: Apache 2.
- NLP4J NLP4J проект (старое название ClearNLP) предоставляет набор NLP инструментов для JVM языков. Этот проект разрабатывается в NLP Research Group из Emory University. Лицензия: Apache 2.
- Joshua Joshua – система машинного перевода, написанная на Java. Разработана Human Language Technology Center of Excellence at Johns Hopkins University. Лицензия: BSD 2.
- Z-MERT Z-MERT – система машинного перевода. Лицензия: GNU Lesser General Public License (LGPL).
- ClearTK – ClearTK – фреймворк для разработки систем machine learning и natural language processing которые реализаует Apache Unstructured Information Management Architecture, github star: 34. Лицензия: Apache 2.
- Apache cTAKES – Apache cTAKES™ это NLP система для получения данных из медицинской документации. Лицензия: Apache 2.
- The Stanford Natural Language Processing Group – Набор различных NLP инструментов, написанных на Java. Подпроекты: Stanford Parser – A statistical parser, Stanford POS Tagger, Stanford Named Entity Recognizer, RegexNER, Word Segmenter,Classifier,EnglishTokenizer,TokensRegex,Temporal Tagger,Pattern-based Information Extraction and Diagnostics,Stanford Relation Extractor. Лицензия: GNU 2/3.
- Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
- CMU Sphinx – Библиотека для распознавания речи. Лицензия: BSD 3.
III. Работа с сетью и интеграция
1. Веб сервера и сервера приложений (web server & application server)
К оглавлению
- Wildfly – сервер приложений (Application Server), ранее известный как JBOSS, разработанный Red Hat с расширенной поддержки Java EE. Лицензия: GNU Lesser 2.1, рейтинг github’а – 1386.
- Undertow io Undertow – высокопроизводительный неблокирующий вебсервер. Лицензия: Apache 2 , рейтинг github’а – 721.
- Apache Tomcat – зеркало Apache Tomcat — открытый web сервер с поддержкой сервлетов, jsp и некоторых аспектов J2EE. Проверенный и всесторонний сервер для сервлет и jsp. Лицензия: Apache 2 , рейтинг github’а – 531.
- Nginx clojure – Nginx модуль с использованием Clojure или Java или Groovy программ. Лицензия: BSD 3 , рейтинг github’а – 514.
- Eclipse Jetty.project – Http сервер и контейнер сервлетов. Легкий, маленький сервер, часто встраиваемый (embedded) в приложения. Лицензия: Eclipse Public 1.0 / Apache 2.0, рейтинг github’а – 512.
- Apache TomEE – Apache Tomcat сервер к которому добавили поддержку Java EE, Лицензия: Apache 2.
- WebSphere Liberty – Легковесный, модульный сервер, разработанный IBM, Лицензия: платная, проприетарная
- GlassFish – Сервер приложений и образцовая реализация Java EE от Oracle, Лицензия: GNU 2 или CDDL 1.0
- Apache Geronimo Java EE Application Server. Лицензия: Apache 2.
- Apache James Apache Java Enterprise Mail Server (или Apache James) это 100% чистый Java SMTP и POP3 постовый сервер и NNTP News сервер. Лицензия: Apache 2.
2. Сеть и сокеты
К оглавлению
- Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2 , рейтинг github’а – 4847.
- Netty socketio Реализация Socket.IO сервера на Java. Основан на Netty фреймворке, служит для обеспечение работы с сетевыми соединениями и сокетами. Лицензия: Apache 2 , рейтинг github’а – 754.
- Grpc java gRPC-Java это реализация RPC библиотеки и фреймворка на Java. Лицензия: BSD 3, рейтинг github’а – 753.
- Socket.io java client Реализация Socket.IO клиента на Java. Лицензия: MIT , рейтинг github’а – 688.
- Socket.io client.java Полнофункциональная Socket.IO клиентская библиотека для Java, совместимая с Socket.IO v1.0 и выше.. Лицензия: MIT , рейтинг github’а – 603.
- EsotericSoftware Kryonet TCP/UDP клиентская и серверная библиотека для Java, основанная на Kryo. Лицензия: BSD 3, рейтинг github’а – 539.
- Async Http Client – Ассинхронная HTTP и вебсокет клиентская библиотека, Лицензия: Apache 2.
- Comsat – Интегрирует стандартный Java веб API c Quasar fibers и actors, Лицензия: Eclipse Public 1.0.
- Grizzly – NIO фреймворк. Использует как сетевой слой в Glassfish, Лицензия: GNU 2 и CDDL 1.1.
- OkHttp – HTTP+SPDY клиент, Лицензия: Apache 2.
- Undertow – Вебсервер, предоставляющий блокирующий и неблокирующий API, основанный на NIO. Используется как сетевой слой в WildFly, Лицензия: Apache 2.
- Apache MINA Apache MINA это фреймворк для создания быстрых сетевых приложений используя Java NIO. Лицензия: Apache 2.
- Apache HttpComponents проект для создания и поддержки низкоуровневых Java компонент работающих на HTTP, Java NIO и т.п. Лицензия: Apache 2.
3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
К оглавлению
- LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2 , рейтинг github’а – 3137.
- Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github’а – 1414.
- Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.).. Лицензия: Apache 2 , рейтинг github’а – 1103.
- JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д.. Лицензия: GNU 3, рейтинг github’а – 834.
- Metamorphosis Высокопроизводительная распределенная система обмена сообщениями . Лицензия: Apache 2 , рейтинг github’а – 580.
- Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2 , рейтинг github’а – 470.
- Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github’а – 415.
- Aeron – Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
- Apache ActiveMQ – Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
- Apache Camel – Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
- Apache Kafka – High-throughput distributed messaging system, Лицензия: Apache 2.
- Hermes – Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
- JBoss HornetQ – Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
- Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2 , рейтинг github’а – 426.
- Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
- Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
- Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.
4. Работа с http и ssh
К оглавлению
- Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5022.
- AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java . Лицензия: Apache 2 , рейтинг github’а – 2149.
- Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия: MIT . , рейтинг github’а – 1477.
- Nanohttpd Крошечный и простой embeddable HTTP сервер для Java.. Лицензия: BSD 3, рейтинг github’а – 1184.
- Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2 , рейтинг github’а – 1172.
- Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации. . Лицензия: Apache 2 , рейтинг github’а – 987.
- Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT , рейтинг github’а – 857.
- Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github’а – 648.
- Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека.. Лицензия: MIT , рейтинг github’а – 537.
- Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2 , рейтинг github’а – 500.
- Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2 , рейтинг github’а – 485.
5. Работа с rest
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
К оглавлению
- HikariCP HikariCP — быстрая, надежная и легкая библиотека для создания JDBC connection pool с минимальными накладными расходами. Лицензия: Apache 2 , рейтинг github’а – 1542.
- Mybatis 3 MyBatis это фреймворк маппинга Java объектов в базы данных. Соединяет Java объектами с определенными хранимыми процедурами или sql запросами. Лицензия: Apache 2 , рейтинг github’а – 1428.
- Hibernate orm Hibernate’s ORM фреймворк, один из самых популярных в Java, надежный, проверенный и широкоиспользуемый фреймворк с большим и активным сообществом. http://hibernate.org/orm/ Лицензия: GNU Lesser 2.1, рейтинг github’а – 1275.
- JOOQ JOOQ — решение по простой интеграции и мапингу Java приложений с популярными базами данных, такими как Oracle, Microsoft SQL Server, IBM DB2, или SAP Sybase. http://www.jooq.org/ . Лицензия: Apache 2 , рейтинг github’а – 830.
- Querydsl Querydsl это Java фреймворк позволяющий конструировать типобезопасные SQL-подобные запросы для множества backends включая JPA, MongoDB и SQL. http://www.querydsl.com/ . Лицензия: Apache 2 , рейтинг github’а – 570.
- Kundera ORM поддерживающий спецификации JPA 2.1 для полиглот маппинга в различные NoSQL хранилища. Лицензия: Apache 2 , рейтинг github’а – 490.
- Spring data jpa Spring Data Jpa – обертка Spring фреймворка над JPa провайдерами . Лицензия: Apache 2 , рейтинг github’а – 459.
- Jdbi jDBI предлагает удобный интерфейс над SQL операциями в Java. http://jdbi.org/ .Лицензия: Apache 2 , рейтинг github’а – 458.
- ActiveJDBCActiveJDBC это Java реализация Active Record шаблона проектирования. Вдохновлен ActiveRecord ORM в Ruby on Rails.. Лицензия: Apache 2 , рейтинг github’а – 230.
- Vibur DBCP – Библиотека реализующая JDBC пул соединений с дополнительными средствами мониторинга производительности, Лицензия: Apache 2.
- Ebean – Предоставляет простой и быстрой доступ к данным, Лицензия: Apache 2.
- EclipseLink – Поддерживает большое количество стандартов ORM: JPA, JAXB, JCA и SDO, Лицензия: Eclipse Public License v1.0 и BSD 3.
- OrmLite – Легковесный пакет избегающий усложнений и перерасхода ресурсов других ORM решений, , Лицензия: ISC.
- Apache Cayenne Простая в использовании Java ORM. Лицензия: Apache 2.
- Apache OpenJPA Реализация Java Persistence API спецификации. Лицензия: Apache 2.
- Apache MetaModel Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.
6. Системы, для обработки данных (работа с грязными данными, анализ и т.п.)
К оглавлению
- Storm – распределенная и устойчивая к ошибкам обработка данных в реальном времени: потоковая обработка, непрерывные вычисления, распределенный RPC и другое. Лицензия: Apache 2 , рейтинг github’а – 8636.
- OpenRefine — инструменты для обработки «грязных» плохо структурированных данных и улучшения их. Выполняет очистку данных, преобразование, связывает с базой данных и позволяет обращаться к данным с помощью web сервисов. Лицензия: BSD , рейтинг github’а – 2939.
- Addthis Stream lib – библиотека Java для групповых операций на потоковыми данными, таких как оценка мощности (подсчет количества элементов), определение членов множества, оценка частоты, получения первых N элементов и т.п.. Лицензия: Apache 2 , рейтинг github’а – 1145.
- HdrHistogram (A High Dynamic Range (HDR) Histogram ) — выполняет запись данных, их анализ и построение сложных графиков (Histogram) . Лицензия: BSD 2 , рейтинг github’а – 672.
- HazyResearch DeepDive это система выделения значений из темных данных. Темные данные, как темная материя, имеют большой вес из текста, таблиц, графиков и изображений и не имеют четкой структуры, что делает их почти не обрабатываемыми обычными способами . Лицензия: Apache 2 , рейтинг github’а – 531.
- Apache Incubator Zeppelin это расположенный в веб notebook (записная книжка?), который позволяет проводить анализ данных, их визуализацию и создавать документы, содержащие SQL, Scala и т.п. . Лицензия: Apache 2 , рейтинг github’а – 463.
- Seldon Server предоставляет реализацию REST API интерфейса для выдачи рекомендаций по контенту и аналитических предсказаний. Лицензия: Apache 2 , рейтинг github’а – 453.
- Pulsar – открытая аналитическая платформа, работающая в реальном времени. Лицензия: GNU 2.0, рейтинг github’а – 435.
- Suro: Netflix’s Data Pipeline — это сервис для сбора, агрегации и управления большим количеством разнообразных событий, включая данные логов. . Лицензия: Apache 2 , рейтинг github’а – 405.
- Apache UIMA Annotator components and a scalable integration and deployment framework for Unstructured Information analysis. Лицензия: Apache 2.
7. Большие данные (big data)
К оглавлению
Фреймворки и библиотеки
- Apache Storm – зеркало для Apache Storm — свободную и распределенную систему обработки данных в реальном времени, аналог Hadoop, но для быстрой потоковой обработки данных, может использоваться с любым языком программирования.. Лицензия: Apache 2 , рейтинг github’а – 2098.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata . Лицензия: Apache 2 , рейтинг github’а – 1725.
- Cloudera Oryx это простая инфраструктура, обеспечивающая высоко нагруженную систему машинного обучения, анализа и выдачи прогнозов в режиме реального времени, работающая с Apache Hadoop, HTTP REST API и реализующая lambda architecture. . Лицензия: Apache 2 , рейтинг github’а – 1142.
- Twitter Elephant bird – набор коллекций и алгоритмов от Twitter’а, для работы с Hadoop lzo, Apache Thrift, Hadoop, Pig, Hive, и HBase.. Лицензия: Apache 2 , рейтинг github’а – 861.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata. Лицензия: Apache 2 , рейтинг github’а – 803.
- Google Mr4c это фрейворк, который позволяет запускать нативный код в Hadoop. Лицензия: GNU Lesser 3, рейтинг github’а – 702.
- Alibaba Jstorm — распределенная и устойчивая к ошибкам система вычисления результатов в реальном времени, вдохновленная Apache Storm,.. Лицензия: Apache 2 , рейтинг github’а – 654.
- Etsy Oculus находит аномальную корреляцию компонент системы Kale system. После того, как вы ввыбрали интересную или аномальную метрику, Oculus найдете все другие метрики в вашей системе, которые выглядят похоже.. Лицензия: MIT , рейтинг github’а – 618.
- Linkedin Datafu это Hadoop библиотека для крупномасштабных систем обработки данных, на данный момент это проект в Apache Incubator . Лицензия: Apache 2 , рейтинг github’а – 570.
- Linkedin Gobblin это универсальный интеграционный фреймворк работающий на Hadoop для получения, трансформации и загрузки большого количества данных в различные источники данных, такие как базы данных, rest APIs, FTP/SFTP сервера и т.д. . Лицензия: Apache 2 , рейтинг github’а – 547.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. Лицензия: Apache 2 , рейтинг github’а – 475.
- Oryx 2 – реализация лямбда архитектуры для Apache Spark и Apache Kafka, но со специализацией на машинном обучении в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 456.
- Yahoo SAMOA (Scalable Advanced Massive Online Analysis) — открытая платформа для потоковой обработки больших данных (mining big data). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Curator Набор Java библиотека, которые облегчают использование Apache ZooKeeper.Лицензия: Apache 2.
- Apache Hama Hama это эффективный и легко расширяемый универсальный BSP computing движок.Лицензия: Apache 2.
- Apache Falcon Платформа управления данными и вычислениями для Hadoop.Лицензия: Apache 2.
- Apache Knox A REST API Gateway for Hadoop Services. Лицензия: Apache 2.
- Apache Flume Apache Flume это распределенная, надежная и доступная система для эффективного сбора, агрегации и сохранения больших объемов логов из множества различных источников в централизованное хранилище данных. Лицензия: Apache 2.
- Apache Tajo Tajo это система обработки больших данных в Hadoop для обработки web-scale набора данных. Лицензия: Apache 2.
- Apache Tez Фреймвор для обработки сколь угодно сложных направленных ациклических графов (DAGs) в задачах обработки данных. Лицензия: Apache 2.
- Apache REEF Apache REEF (Retainable Evaluator Execution Framework) это маштабируемый фреймворк, который облегчает разработку Big Data приложений на основе менеджеров ресурсов таких как Apache YARN или Mesos. Лицензия: Apache 2.
- Apache Pig Apache Pig это платформа для анализа больших наборов данных в Hadoop. Лицензия: Apache 2.
Хранилища, базы данных, Sql-подобные движки, поисковые система для big data
- Druid это column-oriented хранилище и система обработки в реальном времени для обработки потоковых и пакетной информации и интегрированная с Samza, Kafka, Storm, and Hadoop. Лицензия: Apache 2 , рейтинг github’а – 1846.
- Apache Hive – зеркало Apache Hive. Фреймворк для созданий SQL подобного языка запросов для Hadoop. https://hive.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 619.
- Apache Kylin это открытая распределенная аналитическая система, которая обеспечивает SQL интерфейс и OLAP отчеты для Hadoop.. Лицензия: Apache 2 , рейтинг github’а – 504.
- Elasticsearch hadoop – интеграция поиска и анализ ElasticSearch в Hadoop. Лицензия: Apache 2 , рейтинг github’а – 457.
- Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). Лицензия: Apache 2 , рейтинг github’а – 3603.
- Apache MetaModel Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.
- Apache Accumulo Apache Accumulo основана на идее BigTable, предложенной Google, и работает на Apache Hadoop, Zookeeper и Thrift. Лицензия: Apache 2.
- Apache Gora предлагает in-memory модель данных с маппингов в big data. Gora подерживает маппинг в column stores, key value stores, document stores и RDBMSs. Лицензия: Apache 2.
- [Apache Sqoop] Apache Sqoop(TM) инструмент для переноса данных между Apache Hadoop и хранилищами данных, таких как реляционный базы данных.(http://sqoop.apache.org) Лицензия: Apache 2.
- Giraph Apache Giraph это система обработи графов, построенная над Hadoop. Лицензия: Apache 2.
- Impala – Запросы в реальном времени к Hadoop. рейтинг github’а: 1550 Лицензия: Apache 2.
Мониторинг, тестирование и управления кластерами big data серверов
- Twitter Ambrose это платформа для визуализации и мониторинга в реальном времени MapReduce data workflows. . Лицензия: Apache 2 , рейтинг github’а – 1024.
- Umongo – десктопное приложение для просмотра и управления вашим MongoDB кластером. Лицензия: Apache 2 , рейтинг github’а – 495.
- Apache Ambari Упрощает управление и мониторинг Apache Hadoop clusters. Предоставляет веб UI интерфейс и RESTful APIs. Лицензия: Apache 2.
- Apache Chukwa Chukwa это открытая систнам для мониторига больших распределенных систем. Лицензия: Apache 2.
- Apache Bigtop Bigtop это проект для Infrastructure Engineers и Data Scientists котокрые ищут инструменты для тестирования, конфигурирования и управления big date компонентами. Лицензия: Apache 2.
- Apache BookKeeper BookKeeper это replicated система логирования для big datar. Лицензия: Apache 2.
- Apache Crunch Предоставляет фреймворк для написания, тестирования и запуска MapReduce pipelines. Лицензия: Apache 2.
- Apache MRUnit Apache MRUnit это Java библиотека для создания unit тестов, для тестирования Apache Hadoop map reduce jobs. Лицензия: Apache 2.
- Apache Oozie Oozie это workflow система расписания для управления Apache Hadoop jobs. Лицензия: Apache 2.
8. Машинное обучение и нейроные сети (Machine Learning)
К оглавлению
- Airbnb Aerosolve Библиотека для машинного обучения, дружелюбная к пользователям (простая в настройке и т. п.). Лицензия: Apache 2 , рейтинг github’а – 1672.
- Smile SmileMiner (Statistical Machine Intelligence and Learning Engine) – набор Java библиотек различных алгоритмов машинного обучения. Hello World examples. Лицензия: Apache 2 , рейтинг github’а – 1519.
- Deeplearning4j Deep Learning нейронная сеть, написанная на Java и Scala, с интеграцией с Hadoop, Spark и другими backends, которые могут работать как с центральным, так и с графическим процессором. http://deeplearning4j.org/ .Лицензия: Apache 2 , рейтинг github’а – 1172.
- Libsvm “Libsvm это библиотека для мамашиного обучения на основе support vector machines (support vector networks), поддерживает SVM classification and regression, C-SVM classification, nu-SVM classification, one-class-SVM, epsilon-SVM regression, and nu-SVM Regression. Лицензия: BSD 3, рейтинг github’а – 812.
- Neuralnetworks Алгоритмы машинного обучения и нейронных сетей с использованием GPU процессора. Лицензия: MIT , рейтинг github’а – 583.
- Datumbox framework Datumbox это фреймворк для быстрой разработки систем машинного обучения и анализа статистики. Лицензия: Apache 2 , рейтинг github’а – 525.
- Apache Mahout Зеркало Apache Mahout. Задачей проекта Apache Mahout™ является создание окружения для быстрой разработки масштабируемых и производительных систем машинного обучения. Реализует хорошо расширяемые алгоритмы машинного обучения специализированные на применении фильтрации, кластеризации и классификации. https://mahout.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 492.
- Encog java core Encog это фреймворк для машинного обучения предоставляющий большое число алгоритмов и технологий машинного обучения (нейронные сети, генетические алгоритмы и т. д.). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. https://flink.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 475.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata (больших данных с помощью кластеров на простом железе). http://hadoop.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 803.
- Apache Spark – Фреймворк для анализа данных, используя класстер для вычислений, Подпроект: MLlib – библиотека машинного обучения для Spark.Лицензия: Apache 2.
- DeepDive – Создает структурированную информацию из неструктурированных данных и интегрирует её с существующими базами данных, Лицензия: Creative Commons Attribution 4.0.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata.http://h2o.ai/ Лицензия: Apache 2 , рейтинг github’а – 1725.
- JSAT – Алгоритмы для пре-процессинга, классификация, регрессия, и кластеризация поддерживающие многопоточное выыполнение, Лицензия: GNU 3.
- Weka – Коллекция алгоритмов для data mining задач от пре-процессинга до визуализации, Лицензия: GNU.
- Protege – Реализует редактов онтология и фреймворк для экспертных систем, Лицензия: BSD 2
- EvA2 – Фреймворк для использования эволюционных алгоритмов- ранее известный как JavaEvA/EvA. Лицензия: GNU Lesser 3.
- htm.java – Hierarchical Temporal Memory implementation in Java – это официальный сделанный сообществом порт Numenta Platform for Intelligent Computing (NuPIC). Лицензия: AGPL 3 или платная лицензия для комерческого использования.
- JAVA-ML – Java Machine Learning Library (Java-ML). Лицензия: GNU 2
- JSAT – Набор алгоритмов машинного обучения для классификации, регрессионного анализа и кластеризации. Лицензия: GNU 3
- Meka – Открытая реализация методов multi-label классификации и оценки (расширение для Weka). Лицензия: GNU
- Neuroph – Neuroph это легковесный фреймворк по создания нейронной сети на Java. Лицензия: Apache 2.
- rapaio – Набор инструментов для статистического анализа, data mining и машинного обучения на Java. Лицензия: Apache 2.
- Apache SystemML – Гибкий, маштабируемый язык машииного обучения. (incubator project). Лицензия: Apache 2.
- wAlnut – Объектно ориентированная модель для частичного моделирования человеческого мыщления. Лицензия: GNU 3
Semantic Web и Linked Data
Semantic Web (он же Web of Data, Linked Data, Linking Open Data) — это направление развития Всемирной паутины, позволяющее машинам не только отображать информацию в интернете, но и понимать ее смысл.
- Apache Marmotta Открытая платформа для работы с Linked Data. Лицензия: Apache 2.
- Apache Jena Фреймворк для разработки Semantic Web и Linked Data приложений на Java. Лицензия: Apache 2.
Constraint Satisfaction Problem Solver
Библиотеки, которые помогают в такой задачи искусственного интеллекта (ИИ) как удовлетворения ограничений (УО) (constraint satisfaction problem).
- Choco – Полностью готовая “с полки” система по решению задачи удовлетворения ограничений (УО) (constraint satisfaction problem), используя constraint programming технологии, Лицензия: BSD.
- JaCoP – Включает в себя интерфейс для языка FlatZinc, что позволяет ему выполнять модели MiniZinc, Лицензия: неизвестна
- OptaPlanner – Решает задачи бизнес планирования и оптимизации ресурсов, Лицензия: Apache 2.
- Sat4J – Наиболее продвинутый SAT решатель для логических (? boolean) и оптимизационых проблем, Лицензия: GNU Lesser 3 и Eclipse Public 1.0.
Работа с естественными языками (NLP) и распознавание речи
К оглавлению
- Stanfordnlp CoreNLP Stanford CoreNLP: Java библиотека для работы с Stanford NLP (инструментами для анализа и работы с текстом на естественных языках, например английским). Hello World examples. Лицензия: GNU 2, рейтинг github’а – 871.
- Apache OpenNLP – Набор инструментов для типовых задач таких как tokenization. Hello World examples. Лицензия: Apache 2.
- LingPipe – Набор инструментов для различных видов задач от POS tagging до анализа предложений, Лицензия: AGPL и платная лицензия, проприетарная. ИЛИ
- Mallet – Статистическая обработка естественных языков, классификация документов, кластеризация, topic modeling и многое другое, Лицензия: Eclipse Public License v1.0.
- Twitter Text Libraries – Коллекция библиотек и тестов для парсинга текста твитов(tweet). Лицензия: Apache 2.
- NLP4J NLP4J проект (старое название ClearNLP) предоставляет набор NLP инструментов для JVM языков. Этот проект разрабатывается в NLP Research Group из Emory University. Лицензия: Apache 2.
- Joshua Joshua – система машинного перевода, написанная на Java. Разработана Human Language Technology Center of Excellence at Johns Hopkins University. Лицензия: BSD 2.
- Z-MERT Z-MERT – система машинного перевода. Лицензия: GNU Lesser General Public License (LGPL).
- ClearTK – ClearTK – фреймворк для разработки систем machine learning и natural language processing которые реализаует Apache Unstructured Information Management Architecture, github star: 34. Лицензия: Apache 2.
- Apache cTAKES – Apache cTAKES™ это NLP система для получения данных из медицинской документации. Лицензия: Apache 2.
- The Stanford Natural Language Processing Group – Набор различных NLP инструментов, написанных на Java. Подпроекты: Stanford Parser – A statistical parser, Stanford POS Tagger, Stanford Named Entity Recognizer, RegexNER, Word Segmenter,Classifier,EnglishTokenizer,TokensRegex,Temporal Tagger,Pattern-based Information Extraction and Diagnostics,Stanford Relation Extractor. Лицензия: GNU 2/3.
- Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
- CMU Sphinx – Библиотека для распознавания речи. Лицензия: BSD 3.
III. Работа с сетью и интеграция
1. Веб сервера и сервера приложений (web server & application server)
К оглавлению
- Wildfly – сервер приложений (Application Server), ранее известный как JBOSS, разработанный Red Hat с расширенной поддержки Java EE. Лицензия: GNU Lesser 2.1, рейтинг github’а – 1386.
- Undertow io Undertow – высокопроизводительный неблокирующий вебсервер. Лицензия: Apache 2 , рейтинг github’а – 721.
- Apache Tomcat – зеркало Apache Tomcat — открытый web сервер с поддержкой сервлетов, jsp и некоторых аспектов J2EE. Проверенный и всесторонний сервер для сервлет и jsp. Лицензия: Apache 2 , рейтинг github’а – 531.
- Nginx clojure – Nginx модуль с использованием Clojure или Java или Groovy программ. Лицензия: BSD 3 , рейтинг github’а – 514.
- Eclipse Jetty.project – Http сервер и контейнер сервлетов. Легкий, маленький сервер, часто встраиваемый (embedded) в приложения. Лицензия: Eclipse Public 1.0 / Apache 2.0, рейтинг github’а – 512.
- Apache TomEE – Apache Tomcat сервер к которому добавили поддержку Java EE, Лицензия: Apache 2.
- WebSphere Liberty – Легковесный, модульный сервер, разработанный IBM, Лицензия: платная, проприетарная
- GlassFish – Сервер приложений и образцовая реализация Java EE от Oracle, Лицензия: GNU 2 или CDDL 1.0
- Apache Geronimo Java EE Application Server. Лицензия: Apache 2.
- Apache James Apache Java Enterprise Mail Server (или Apache James) это 100% чистый Java SMTP и POP3 постовый сервер и NNTP News сервер. Лицензия: Apache 2.
2. Сеть и сокеты
К оглавлению
- Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2 , рейтинг github’а – 4847.
- Netty socketio Реализация Socket.IO сервера на Java. Основан на Netty фреймворке, служит для обеспечение работы с сетевыми соединениями и сокетами. Лицензия: Apache 2 , рейтинг github’а – 754.
- Grpc java gRPC-Java это реализация RPC библиотеки и фреймворка на Java. Лицензия: BSD 3, рейтинг github’а – 753.
- Socket.io java client Реализация Socket.IO клиента на Java. Лицензия: MIT , рейтинг github’а – 688.
- Socket.io client.java Полнофункциональная Socket.IO клиентская библиотека для Java, совместимая с Socket.IO v1.0 и выше.. Лицензия: MIT , рейтинг github’а – 603.
- EsotericSoftware Kryonet TCP/UDP клиентская и серверная библиотека для Java, основанная на Kryo. Лицензия: BSD 3, рейтинг github’а – 539.
- Async Http Client – Ассинхронная HTTP и вебсокет клиентская библиотека, Лицензия: Apache 2.
- Comsat – Интегрирует стандартный Java веб API c Quasar fibers и actors, Лицензия: Eclipse Public 1.0.
- Grizzly – NIO фреймворк. Использует как сетевой слой в Glassfish, Лицензия: GNU 2 и CDDL 1.1.
- OkHttp – HTTP+SPDY клиент, Лицензия: Apache 2.
- Undertow – Вебсервер, предоставляющий блокирующий и неблокирующий API, основанный на NIO. Используется как сетевой слой в WildFly, Лицензия: Apache 2.
- Apache MINA Apache MINA это фреймворк для создания быстрых сетевых приложений используя Java NIO. Лицензия: Apache 2.
- Apache HttpComponents проект для создания и поддержки низкоуровневых Java компонент работающих на HTTP, Java NIO и т.п. Лицензия: Apache 2.
3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
К оглавлению
- LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2 , рейтинг github’а – 3137.
- Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github’а – 1414.
- Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.).. Лицензия: Apache 2 , рейтинг github’а – 1103.
- JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д.. Лицензия: GNU 3, рейтинг github’а – 834.
- Metamorphosis Высокопроизводительная распределенная система обмена сообщениями . Лицензия: Apache 2 , рейтинг github’а – 580.
- Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2 , рейтинг github’а – 470.
- Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github’а – 415.
- Aeron – Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
- Apache ActiveMQ – Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
- Apache Camel – Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
- Apache Kafka – High-throughput distributed messaging system, Лицензия: Apache 2.
- Hermes – Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
- JBoss HornetQ – Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
- Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2 , рейтинг github’а – 426.
- Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
- Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
- Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.
4. Работа с http и ssh
К оглавлению
- Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5022.
- AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java . Лицензия: Apache 2 , рейтинг github’а – 2149.
- Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия: MIT . , рейтинг github’а – 1477.
- Nanohttpd Крошечный и простой embeddable HTTP сервер для Java.. Лицензия: BSD 3, рейтинг github’а – 1184.
- Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2 , рейтинг github’а – 1172.
- Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации. . Лицензия: Apache 2 , рейтинг github’а – 987.
- Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT , рейтинг github’а – 857.
- Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github’а – 648.
- Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека.. Лицензия: MIT , рейтинг github’а – 537.
- Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2 , рейтинг github’а – 500.
- Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2 , рейтинг github’а – 485.
5. Работа с rest
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
К оглавлению
Фреймворки и библиотеки
- Apache Storm – зеркало для Apache Storm — свободную и распределенную систему обработки данных в реальном времени, аналог Hadoop, но для быстрой потоковой обработки данных, может использоваться с любым языком программирования.. Лицензия: Apache 2 , рейтинг github’а – 2098.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata . Лицензия: Apache 2 , рейтинг github’а – 1725.
- Cloudera Oryx это простая инфраструктура, обеспечивающая высоко нагруженную систему машинного обучения, анализа и выдачи прогнозов в режиме реального времени, работающая с Apache Hadoop, HTTP REST API и реализующая lambda architecture. . Лицензия: Apache 2 , рейтинг github’а – 1142.
- Twitter Elephant bird – набор коллекций и алгоритмов от Twitter’а, для работы с Hadoop lzo, Apache Thrift, Hadoop, Pig, Hive, и HBase.. Лицензия: Apache 2 , рейтинг github’а – 861.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata. Лицензия: Apache 2 , рейтинг github’а – 803.
- Google Mr4c это фрейворк, который позволяет запускать нативный код в Hadoop. Лицензия: GNU Lesser 3, рейтинг github’а – 702.
- Alibaba Jstorm — распределенная и устойчивая к ошибкам система вычисления результатов в реальном времени, вдохновленная Apache Storm,.. Лицензия: Apache 2 , рейтинг github’а – 654.
- Etsy Oculus находит аномальную корреляцию компонент системы Kale system. После того, как вы ввыбрали интересную или аномальную метрику, Oculus найдете все другие метрики в вашей системе, которые выглядят похоже.. Лицензия: MIT , рейтинг github’а – 618.
- Linkedin Datafu это Hadoop библиотека для крупномасштабных систем обработки данных, на данный момент это проект в Apache Incubator . Лицензия: Apache 2 , рейтинг github’а – 570.
- Linkedin Gobblin это универсальный интеграционный фреймворк работающий на Hadoop для получения, трансформации и загрузки большого количества данных в различные источники данных, такие как базы данных, rest APIs, FTP/SFTP сервера и т.д. . Лицензия: Apache 2 , рейтинг github’а – 547.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. Лицензия: Apache 2 , рейтинг github’а – 475.
- Oryx 2 – реализация лямбда архитектуры для Apache Spark и Apache Kafka, но со специализацией на машинном обучении в реальном времени. Лицензия: Apache 2 , рейтинг github’а – 456.
- Yahoo SAMOA (Scalable Advanced Massive Online Analysis) — открытая платформа для потоковой обработки больших данных (mining big data). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Curator Набор Java библиотека, которые облегчают использование Apache ZooKeeper.Лицензия: Apache 2.
- Apache Hama Hama это эффективный и легко расширяемый универсальный BSP computing движок.Лицензия: Apache 2.
- Apache Falcon Платформа управления данными и вычислениями для Hadoop.Лицензия: Apache 2.
- Apache Knox A REST API Gateway for Hadoop Services. Лицензия: Apache 2.
- Apache Flume Apache Flume это распределенная, надежная и доступная система для эффективного сбора, агрегации и сохранения больших объемов логов из множества различных источников в централизованное хранилище данных. Лицензия: Apache 2.
- Apache Tajo Tajo это система обработки больших данных в Hadoop для обработки web-scale набора данных. Лицензия: Apache 2.
- Apache Tez Фреймвор для обработки сколь угодно сложных направленных ациклических графов (DAGs) в задачах обработки данных. Лицензия: Apache 2.
- Apache REEF Apache REEF (Retainable Evaluator Execution Framework) это маштабируемый фреймворк, который облегчает разработку Big Data приложений на основе менеджеров ресурсов таких как Apache YARN или Mesos. Лицензия: Apache 2.
- Apache Pig Apache Pig это платформа для анализа больших наборов данных в Hadoop. Лицензия: Apache 2.
Хранилища, базы данных, Sql-подобные движки, поисковые система для big data
- Druid это column-oriented хранилище и система обработки в реальном времени для обработки потоковых и пакетной информации и интегрированная с Samza, Kafka, Storm, and Hadoop. Лицензия: Apache 2 , рейтинг github’а – 1846.
- Apache Hive – зеркало Apache Hive. Фреймворк для созданий SQL подобного языка запросов для Hadoop. https://hive.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 619.
- Apache Kylin это открытая распределенная аналитическая система, которая обеспечивает SQL интерфейс и OLAP отчеты для Hadoop.. Лицензия: Apache 2 , рейтинг github’а – 504.
- Elasticsearch hadoop – интеграция поиска и анализ ElasticSearch в Hadoop. Лицензия: Apache 2 , рейтинг github’а – 457.
- Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). Лицензия: Apache 2 , рейтинг github’а – 3603.
- Apache MetaModel Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.
- Apache Accumulo Apache Accumulo основана на идее BigTable, предложенной Google, и работает на Apache Hadoop, Zookeeper и Thrift. Лицензия: Apache 2.
- Apache Gora предлагает in-memory модель данных с маппингов в big data. Gora подерживает маппинг в column stores, key value stores, document stores и RDBMSs. Лицензия: Apache 2.
- [Apache Sqoop] Apache Sqoop(TM) инструмент для переноса данных между Apache Hadoop и хранилищами данных, таких как реляционный базы данных.(http://sqoop.apache.org) Лицензия: Apache 2.
- Giraph Apache Giraph это система обработи графов, построенная над Hadoop. Лицензия: Apache 2.
- Impala – Запросы в реальном времени к Hadoop. рейтинг github’а: 1550 Лицензия: Apache 2.
Мониторинг, тестирование и управления кластерами big data серверов
- Twitter Ambrose это платформа для визуализации и мониторинга в реальном времени MapReduce data workflows. . Лицензия: Apache 2 , рейтинг github’а – 1024.
- Umongo – десктопное приложение для просмотра и управления вашим MongoDB кластером. Лицензия: Apache 2 , рейтинг github’а – 495.
- Apache Ambari Упрощает управление и мониторинг Apache Hadoop clusters. Предоставляет веб UI интерфейс и RESTful APIs. Лицензия: Apache 2.
- Apache Chukwa Chukwa это открытая систнам для мониторига больших распределенных систем. Лицензия: Apache 2.
- Apache Bigtop Bigtop это проект для Infrastructure Engineers и Data Scientists котокрые ищут инструменты для тестирования, конфигурирования и управления big date компонентами. Лицензия: Apache 2.
- Apache BookKeeper BookKeeper это replicated система логирования для big datar. Лицензия: Apache 2.
- Apache Crunch Предоставляет фреймворк для написания, тестирования и запуска MapReduce pipelines. Лицензия: Apache 2.
- Apache MRUnit Apache MRUnit это Java библиотека для создания unit тестов, для тестирования Apache Hadoop map reduce jobs. Лицензия: Apache 2.
- Apache Oozie Oozie это workflow система расписания для управления Apache Hadoop jobs. Лицензия: Apache 2.
8. Машинное обучение и нейроные сети (Machine Learning)
К оглавлению
- Airbnb Aerosolve Библиотека для машинного обучения, дружелюбная к пользователям (простая в настройке и т. п.). Лицензия: Apache 2 , рейтинг github’а – 1672.
- Smile SmileMiner (Statistical Machine Intelligence and Learning Engine) – набор Java библиотек различных алгоритмов машинного обучения. Hello World examples. Лицензия: Apache 2 , рейтинг github’а – 1519.
- Deeplearning4j Deep Learning нейронная сеть, написанная на Java и Scala, с интеграцией с Hadoop, Spark и другими backends, которые могут работать как с центральным, так и с графическим процессором. http://deeplearning4j.org/ .Лицензия: Apache 2 , рейтинг github’а – 1172.
- Libsvm “Libsvm это библиотека для мамашиного обучения на основе support vector machines (support vector networks), поддерживает SVM classification and regression, C-SVM classification, nu-SVM classification, one-class-SVM, epsilon-SVM regression, and nu-SVM Regression. Лицензия: BSD 3, рейтинг github’а – 812.
- Neuralnetworks Алгоритмы машинного обучения и нейронных сетей с использованием GPU процессора. Лицензия: MIT , рейтинг github’а – 583.
- Datumbox framework Datumbox это фреймворк для быстрой разработки систем машинного обучения и анализа статистики. Лицензия: Apache 2 , рейтинг github’а – 525.
- Apache Mahout Зеркало Apache Mahout. Задачей проекта Apache Mahout™ является создание окружения для быстрой разработки масштабируемых и производительных систем машинного обучения. Реализует хорошо расширяемые алгоритмы машинного обучения специализированные на применении фильтрации, кластеризации и классификации. https://mahout.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 492.
- Encog java core Encog это фреймворк для машинного обучения предоставляющий большое число алгоритмов и технологий машинного обучения (нейронные сети, генетические алгоритмы и т. д.). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. https://flink.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 475.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata (больших данных с помощью кластеров на простом железе). http://hadoop.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 803.
- Apache Spark – Фреймворк для анализа данных, используя класстер для вычислений, Подпроект: MLlib – библиотека машинного обучения для Spark.Лицензия: Apache 2.
- DeepDive – Создает структурированную информацию из неструктурированных данных и интегрирует её с существующими базами данных, Лицензия: Creative Commons Attribution 4.0.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata.http://h2o.ai/ Лицензия: Apache 2 , рейтинг github’а – 1725.
- JSAT – Алгоритмы для пре-процессинга, классификация, регрессия, и кластеризация поддерживающие многопоточное выыполнение, Лицензия: GNU 3.
- Weka – Коллекция алгоритмов для data mining задач от пре-процессинга до визуализации, Лицензия: GNU.
- Protege – Реализует редактов онтология и фреймворк для экспертных систем, Лицензия: BSD 2
- EvA2 – Фреймворк для использования эволюционных алгоритмов- ранее известный как JavaEvA/EvA. Лицензия: GNU Lesser 3.
- htm.java – Hierarchical Temporal Memory implementation in Java – это официальный сделанный сообществом порт Numenta Platform for Intelligent Computing (NuPIC). Лицензия: AGPL 3 или платная лицензия для комерческого использования.
- JAVA-ML – Java Machine Learning Library (Java-ML). Лицензия: GNU 2
- JSAT – Набор алгоритмов машинного обучения для классификации, регрессионного анализа и кластеризации. Лицензия: GNU 3
- Meka – Открытая реализация методов multi-label классификации и оценки (расширение для Weka). Лицензия: GNU
- Neuroph – Neuroph это легковесный фреймворк по создания нейронной сети на Java. Лицензия: Apache 2.
- rapaio – Набор инструментов для статистического анализа, data mining и машинного обучения на Java. Лицензия: Apache 2.
- Apache SystemML – Гибкий, маштабируемый язык машииного обучения. (incubator project). Лицензия: Apache 2.
- wAlnut – Объектно ориентированная модель для частичного моделирования человеческого мыщления. Лицензия: GNU 3
Semantic Web и Linked Data
Semantic Web (он же Web of Data, Linked Data, Linking Open Data) — это направление развития Всемирной паутины, позволяющее машинам не только отображать информацию в интернете, но и понимать ее смысл.
- Apache Marmotta Открытая платформа для работы с Linked Data. Лицензия: Apache 2.
- Apache Jena Фреймворк для разработки Semantic Web и Linked Data приложений на Java. Лицензия: Apache 2.
Constraint Satisfaction Problem Solver
Библиотеки, которые помогают в такой задачи искусственного интеллекта (ИИ) как удовлетворения ограничений (УО) (constraint satisfaction problem).
- Choco – Полностью готовая “с полки” система по решению задачи удовлетворения ограничений (УО) (constraint satisfaction problem), используя constraint programming технологии, Лицензия: BSD.
- JaCoP – Включает в себя интерфейс для языка FlatZinc, что позволяет ему выполнять модели MiniZinc, Лицензия: неизвестна
- OptaPlanner – Решает задачи бизнес планирования и оптимизации ресурсов, Лицензия: Apache 2.
- Sat4J – Наиболее продвинутый SAT решатель для логических (? boolean) и оптимизационых проблем, Лицензия: GNU Lesser 3 и Eclipse Public 1.0.
Работа с естественными языками (NLP) и распознавание речи
К оглавлению
- Stanfordnlp CoreNLP Stanford CoreNLP: Java библиотека для работы с Stanford NLP (инструментами для анализа и работы с текстом на естественных языках, например английским). Hello World examples. Лицензия: GNU 2, рейтинг github’а – 871.
- Apache OpenNLP – Набор инструментов для типовых задач таких как tokenization. Hello World examples. Лицензия: Apache 2.
- LingPipe – Набор инструментов для различных видов задач от POS tagging до анализа предложений, Лицензия: AGPL и платная лицензия, проприетарная. ИЛИ
- Mallet – Статистическая обработка естественных языков, классификация документов, кластеризация, topic modeling и многое другое, Лицензия: Eclipse Public License v1.0.
- Twitter Text Libraries – Коллекция библиотек и тестов для парсинга текста твитов(tweet). Лицензия: Apache 2.
- NLP4J NLP4J проект (старое название ClearNLP) предоставляет набор NLP инструментов для JVM языков. Этот проект разрабатывается в NLP Research Group из Emory University. Лицензия: Apache 2.
- Joshua Joshua – система машинного перевода, написанная на Java. Разработана Human Language Technology Center of Excellence at Johns Hopkins University. Лицензия: BSD 2.
- Z-MERT Z-MERT – система машинного перевода. Лицензия: GNU Lesser General Public License (LGPL).
- ClearTK – ClearTK – фреймворк для разработки систем machine learning и natural language processing которые реализаует Apache Unstructured Information Management Architecture, github star: 34. Лицензия: Apache 2.
- Apache cTAKES – Apache cTAKES™ это NLP система для получения данных из медицинской документации. Лицензия: Apache 2.
- The Stanford Natural Language Processing Group – Набор различных NLP инструментов, написанных на Java. Подпроекты: Stanford Parser – A statistical parser, Stanford POS Tagger, Stanford Named Entity Recognizer, RegexNER, Word Segmenter,Classifier,EnglishTokenizer,TokensRegex,Temporal Tagger,Pattern-based Information Extraction and Diagnostics,Stanford Relation Extractor. Лицензия: GNU 2/3.
- Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
- CMU Sphinx – Библиотека для распознавания речи. Лицензия: BSD 3.
III. Работа с сетью и интеграция
1. Веб сервера и сервера приложений (web server & application server)
К оглавлению
- Wildfly – сервер приложений (Application Server), ранее известный как JBOSS, разработанный Red Hat с расширенной поддержки Java EE. Лицензия: GNU Lesser 2.1, рейтинг github’а – 1386.
- Undertow io Undertow – высокопроизводительный неблокирующий вебсервер. Лицензия: Apache 2 , рейтинг github’а – 721.
- Apache Tomcat – зеркало Apache Tomcat — открытый web сервер с поддержкой сервлетов, jsp и некоторых аспектов J2EE. Проверенный и всесторонний сервер для сервлет и jsp. Лицензия: Apache 2 , рейтинг github’а – 531.
- Nginx clojure – Nginx модуль с использованием Clojure или Java или Groovy программ. Лицензия: BSD 3 , рейтинг github’а – 514.
- Eclipse Jetty.project – Http сервер и контейнер сервлетов. Легкий, маленький сервер, часто встраиваемый (embedded) в приложения. Лицензия: Eclipse Public 1.0 / Apache 2.0, рейтинг github’а – 512.
- Apache TomEE – Apache Tomcat сервер к которому добавили поддержку Java EE, Лицензия: Apache 2.
- WebSphere Liberty – Легковесный, модульный сервер, разработанный IBM, Лицензия: платная, проприетарная
- GlassFish – Сервер приложений и образцовая реализация Java EE от Oracle, Лицензия: GNU 2 или CDDL 1.0
- Apache Geronimo Java EE Application Server. Лицензия: Apache 2.
- Apache James Apache Java Enterprise Mail Server (или Apache James) это 100% чистый Java SMTP и POP3 постовый сервер и NNTP News сервер. Лицензия: Apache 2.
2. Сеть и сокеты
К оглавлению
- Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2 , рейтинг github’а – 4847.
- Netty socketio Реализация Socket.IO сервера на Java. Основан на Netty фреймворке, служит для обеспечение работы с сетевыми соединениями и сокетами. Лицензия: Apache 2 , рейтинг github’а – 754.
- Grpc java gRPC-Java это реализация RPC библиотеки и фреймворка на Java. Лицензия: BSD 3, рейтинг github’а – 753.
- Socket.io java client Реализация Socket.IO клиента на Java. Лицензия: MIT , рейтинг github’а – 688.
- Socket.io client.java Полнофункциональная Socket.IO клиентская библиотека для Java, совместимая с Socket.IO v1.0 и выше.. Лицензия: MIT , рейтинг github’а – 603.
- EsotericSoftware Kryonet TCP/UDP клиентская и серверная библиотека для Java, основанная на Kryo. Лицензия: BSD 3, рейтинг github’а – 539.
- Async Http Client – Ассинхронная HTTP и вебсокет клиентская библиотека, Лицензия: Apache 2.
- Comsat – Интегрирует стандартный Java веб API c Quasar fibers и actors, Лицензия: Eclipse Public 1.0.
- Grizzly – NIO фреймворк. Использует как сетевой слой в Glassfish, Лицензия: GNU 2 и CDDL 1.1.
- OkHttp – HTTP+SPDY клиент, Лицензия: Apache 2.
- Undertow – Вебсервер, предоставляющий блокирующий и неблокирующий API, основанный на NIO. Используется как сетевой слой в WildFly, Лицензия: Apache 2.
- Apache MINA Apache MINA это фреймворк для создания быстрых сетевых приложений используя Java NIO. Лицензия: Apache 2.
- Apache HttpComponents проект для создания и поддержки низкоуровневых Java компонент работающих на HTTP, Java NIO и т.п. Лицензия: Apache 2.
3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
К оглавлению
- LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2 , рейтинг github’а – 3137.
- Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github’а – 1414.
- Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.).. Лицензия: Apache 2 , рейтинг github’а – 1103.
- JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д.. Лицензия: GNU 3, рейтинг github’а – 834.
- Metamorphosis Высокопроизводительная распределенная система обмена сообщениями . Лицензия: Apache 2 , рейтинг github’а – 580.
- Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2 , рейтинг github’а – 470.
- Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github’а – 415.
- Aeron – Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
- Apache ActiveMQ – Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
- Apache Camel – Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
- Apache Kafka – High-throughput distributed messaging system, Лицензия: Apache 2.
- Hermes – Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
- JBoss HornetQ – Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
- Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2 , рейтинг github’а – 426.
- Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
- Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
- Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.
4. Работа с http и ssh
К оглавлению
- Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5022.
- AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java . Лицензия: Apache 2 , рейтинг github’а – 2149.
- Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия: MIT . , рейтинг github’а – 1477.
- Nanohttpd Крошечный и простой embeddable HTTP сервер для Java.. Лицензия: BSD 3, рейтинг github’а – 1184.
- Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2 , рейтинг github’а – 1172.
- Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации. . Лицензия: Apache 2 , рейтинг github’а – 987.
- Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT , рейтинг github’а – 857.
- Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github’а – 648.
- Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека.. Лицензия: MIT , рейтинг github’а – 537.
- Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2 , рейтинг github’а – 500.
- Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2 , рейтинг github’а – 485.
5. Работа с rest
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
- Druid это column-oriented хранилище и система обработки в реальном времени для обработки потоковых и пакетной информации и интегрированная с Samza, Kafka, Storm, and Hadoop. Лицензия: Apache 2 , рейтинг github’а – 1846.
- Apache Hive – зеркало Apache Hive. Фреймворк для созданий SQL подобного языка запросов для Hadoop. https://hive.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 619.
- Apache Kylin это открытая распределенная аналитическая система, которая обеспечивает SQL интерфейс и OLAP отчеты для Hadoop.. Лицензия: Apache 2 , рейтинг github’а – 504.
- Elasticsearch hadoop – интеграция поиска и анализ ElasticSearch в Hadoop. Лицензия: Apache 2 , рейтинг github’а – 457.
- Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). Лицензия: Apache 2 , рейтинг github’а – 3603.
- Apache MetaModel Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.
- Apache Accumulo Apache Accumulo основана на идее BigTable, предложенной Google, и работает на Apache Hadoop, Zookeeper и Thrift. Лицензия: Apache 2.
- Apache Gora предлагает in-memory модель данных с маппингов в big data. Gora подерживает маппинг в column stores, key value stores, document stores и RDBMSs. Лицензия: Apache 2.
- [Apache Sqoop] Apache Sqoop(TM) инструмент для переноса данных между Apache Hadoop и хранилищами данных, таких как реляционный базы данных.(http://sqoop.apache.org) Лицензия: Apache 2.
- Giraph Apache Giraph это система обработи графов, построенная над Hadoop. Лицензия: Apache 2.
- Impala – Запросы в реальном времени к Hadoop. рейтинг github’а: 1550 Лицензия: Apache 2.
Мониторинг, тестирование и управления кластерами big data серверов
- Twitter Ambrose это платформа для визуализации и мониторинга в реальном времени MapReduce data workflows. . Лицензия: Apache 2 , рейтинг github’а – 1024.
- Umongo – десктопное приложение для просмотра и управления вашим MongoDB кластером. Лицензия: Apache 2 , рейтинг github’а – 495.
- Apache Ambari Упрощает управление и мониторинг Apache Hadoop clusters. Предоставляет веб UI интерфейс и RESTful APIs. Лицензия: Apache 2.
- Apache Chukwa Chukwa это открытая систнам для мониторига больших распределенных систем. Лицензия: Apache 2.
- Apache Bigtop Bigtop это проект для Infrastructure Engineers и Data Scientists котокрые ищут инструменты для тестирования, конфигурирования и управления big date компонентами. Лицензия: Apache 2.
- Apache BookKeeper BookKeeper это replicated система логирования для big datar. Лицензия: Apache 2.
- Apache Crunch Предоставляет фреймворк для написания, тестирования и запуска MapReduce pipelines. Лицензия: Apache 2.
- Apache MRUnit Apache MRUnit это Java библиотека для создания unit тестов, для тестирования Apache Hadoop map reduce jobs. Лицензия: Apache 2.
- Apache Oozie Oozie это workflow система расписания для управления Apache Hadoop jobs. Лицензия: Apache 2.
8. Машинное обучение и нейроные сети (Machine Learning)
К оглавлению
- Airbnb Aerosolve Библиотека для машинного обучения, дружелюбная к пользователям (простая в настройке и т. п.). Лицензия: Apache 2 , рейтинг github’а – 1672.
- Smile SmileMiner (Statistical Machine Intelligence and Learning Engine) – набор Java библиотек различных алгоритмов машинного обучения. Hello World examples. Лицензия: Apache 2 , рейтинг github’а – 1519.
- Deeplearning4j Deep Learning нейронная сеть, написанная на Java и Scala, с интеграцией с Hadoop, Spark и другими backends, которые могут работать как с центральным, так и с графическим процессором. http://deeplearning4j.org/ .Лицензия: Apache 2 , рейтинг github’а – 1172.
- Libsvm “Libsvm это библиотека для мамашиного обучения на основе support vector machines (support vector networks), поддерживает SVM classification and regression, C-SVM classification, nu-SVM classification, one-class-SVM, epsilon-SVM regression, and nu-SVM Regression. Лицензия: BSD 3, рейтинг github’а – 812.
- Neuralnetworks Алгоритмы машинного обучения и нейронных сетей с использованием GPU процессора. Лицензия: MIT , рейтинг github’а – 583.
- Datumbox framework Datumbox это фреймворк для быстрой разработки систем машинного обучения и анализа статистики. Лицензия: Apache 2 , рейтинг github’а – 525.
- Apache Mahout Зеркало Apache Mahout. Задачей проекта Apache Mahout™ является создание окружения для быстрой разработки масштабируемых и производительных систем машинного обучения. Реализует хорошо расширяемые алгоритмы машинного обучения специализированные на применении фильтрации, кластеризации и классификации. https://mahout.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 492.
- Encog java core Encog это фреймворк для машинного обучения предоставляющий большое число алгоритмов и технологий машинного обучения (нейронные сети, генетические алгоритмы и т. д.). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. https://flink.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 475.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata (больших данных с помощью кластеров на простом железе). http://hadoop.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 803.
- Apache Spark – Фреймворк для анализа данных, используя класстер для вычислений, Подпроект: MLlib – библиотека машинного обучения для Spark.Лицензия: Apache 2.
- DeepDive – Создает структурированную информацию из неструктурированных данных и интегрирует её с существующими базами данных, Лицензия: Creative Commons Attribution 4.0.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata.http://h2o.ai/ Лицензия: Apache 2 , рейтинг github’а – 1725.
- JSAT – Алгоритмы для пре-процессинга, классификация, регрессия, и кластеризация поддерживающие многопоточное выыполнение, Лицензия: GNU 3.
- Weka – Коллекция алгоритмов для data mining задач от пре-процессинга до визуализации, Лицензия: GNU.
- Protege – Реализует редактов онтология и фреймворк для экспертных систем, Лицензия: BSD 2
- EvA2 – Фреймворк для использования эволюционных алгоритмов- ранее известный как JavaEvA/EvA. Лицензия: GNU Lesser 3.
- htm.java – Hierarchical Temporal Memory implementation in Java – это официальный сделанный сообществом порт Numenta Platform for Intelligent Computing (NuPIC). Лицензия: AGPL 3 или платная лицензия для комерческого использования.
- JAVA-ML – Java Machine Learning Library (Java-ML). Лицензия: GNU 2
- JSAT – Набор алгоритмов машинного обучения для классификации, регрессионного анализа и кластеризации. Лицензия: GNU 3
- Meka – Открытая реализация методов multi-label классификации и оценки (расширение для Weka). Лицензия: GNU
- Neuroph – Neuroph это легковесный фреймворк по создания нейронной сети на Java. Лицензия: Apache 2.
- rapaio – Набор инструментов для статистического анализа, data mining и машинного обучения на Java. Лицензия: Apache 2.
- Apache SystemML – Гибкий, маштабируемый язык машииного обучения. (incubator project). Лицензия: Apache 2.
- wAlnut – Объектно ориентированная модель для частичного моделирования человеческого мыщления. Лицензия: GNU 3
Semantic Web и Linked Data
Semantic Web (он же Web of Data, Linked Data, Linking Open Data) — это направление развития Всемирной паутины, позволяющее машинам не только отображать информацию в интернете, но и понимать ее смысл.
- Apache Marmotta Открытая платформа для работы с Linked Data. Лицензия: Apache 2.
- Apache Jena Фреймворк для разработки Semantic Web и Linked Data приложений на Java. Лицензия: Apache 2.
Constraint Satisfaction Problem Solver
Библиотеки, которые помогают в такой задачи искусственного интеллекта (ИИ) как удовлетворения ограничений (УО) (constraint satisfaction problem).
- Choco – Полностью готовая “с полки” система по решению задачи удовлетворения ограничений (УО) (constraint satisfaction problem), используя constraint programming технологии, Лицензия: BSD.
- JaCoP – Включает в себя интерфейс для языка FlatZinc, что позволяет ему выполнять модели MiniZinc, Лицензия: неизвестна
- OptaPlanner – Решает задачи бизнес планирования и оптимизации ресурсов, Лицензия: Apache 2.
- Sat4J – Наиболее продвинутый SAT решатель для логических (? boolean) и оптимизационых проблем, Лицензия: GNU Lesser 3 и Eclipse Public 1.0.
Работа с естественными языками (NLP) и распознавание речи
К оглавлению
- Stanfordnlp CoreNLP Stanford CoreNLP: Java библиотека для работы с Stanford NLP (инструментами для анализа и работы с текстом на естественных языках, например английским). Hello World examples. Лицензия: GNU 2, рейтинг github’а – 871.
- Apache OpenNLP – Набор инструментов для типовых задач таких как tokenization. Hello World examples. Лицензия: Apache 2.
- LingPipe – Набор инструментов для различных видов задач от POS tagging до анализа предложений, Лицензия: AGPL и платная лицензия, проприетарная. ИЛИ
- Mallet – Статистическая обработка естественных языков, классификация документов, кластеризация, topic modeling и многое другое, Лицензия: Eclipse Public License v1.0.
- Twitter Text Libraries – Коллекция библиотек и тестов для парсинга текста твитов(tweet). Лицензия: Apache 2.
- NLP4J NLP4J проект (старое название ClearNLP) предоставляет набор NLP инструментов для JVM языков. Этот проект разрабатывается в NLP Research Group из Emory University. Лицензия: Apache 2.
- Joshua Joshua – система машинного перевода, написанная на Java. Разработана Human Language Technology Center of Excellence at Johns Hopkins University. Лицензия: BSD 2.
- Z-MERT Z-MERT – система машинного перевода. Лицензия: GNU Lesser General Public License (LGPL).
- ClearTK – ClearTK – фреймворк для разработки систем machine learning и natural language processing которые реализаует Apache Unstructured Information Management Architecture, github star: 34. Лицензия: Apache 2.
- Apache cTAKES – Apache cTAKES™ это NLP система для получения данных из медицинской документации. Лицензия: Apache 2.
- The Stanford Natural Language Processing Group – Набор различных NLP инструментов, написанных на Java. Подпроекты: Stanford Parser – A statistical parser, Stanford POS Tagger, Stanford Named Entity Recognizer, RegexNER, Word Segmenter,Classifier,EnglishTokenizer,TokensRegex,Temporal Tagger,Pattern-based Information Extraction and Diagnostics,Stanford Relation Extractor. Лицензия: GNU 2/3.
- Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
- CMU Sphinx – Библиотека для распознавания речи. Лицензия: BSD 3.
III. Работа с сетью и интеграция
1. Веб сервера и сервера приложений (web server & application server)
К оглавлению
- Wildfly – сервер приложений (Application Server), ранее известный как JBOSS, разработанный Red Hat с расширенной поддержки Java EE. Лицензия: GNU Lesser 2.1, рейтинг github’а – 1386.
- Undertow io Undertow – высокопроизводительный неблокирующий вебсервер. Лицензия: Apache 2 , рейтинг github’а – 721.
- Apache Tomcat – зеркало Apache Tomcat — открытый web сервер с поддержкой сервлетов, jsp и некоторых аспектов J2EE. Проверенный и всесторонний сервер для сервлет и jsp. Лицензия: Apache 2 , рейтинг github’а – 531.
- Nginx clojure – Nginx модуль с использованием Clojure или Java или Groovy программ. Лицензия: BSD 3 , рейтинг github’а – 514.
- Eclipse Jetty.project – Http сервер и контейнер сервлетов. Легкий, маленький сервер, часто встраиваемый (embedded) в приложения. Лицензия: Eclipse Public 1.0 / Apache 2.0, рейтинг github’а – 512.
- Apache TomEE – Apache Tomcat сервер к которому добавили поддержку Java EE, Лицензия: Apache 2.
- WebSphere Liberty – Легковесный, модульный сервер, разработанный IBM, Лицензия: платная, проприетарная
- GlassFish – Сервер приложений и образцовая реализация Java EE от Oracle, Лицензия: GNU 2 или CDDL 1.0
- Apache Geronimo Java EE Application Server. Лицензия: Apache 2.
- Apache James Apache Java Enterprise Mail Server (или Apache James) это 100% чистый Java SMTP и POP3 постовый сервер и NNTP News сервер. Лицензия: Apache 2.
2. Сеть и сокеты
К оглавлению
- Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2 , рейтинг github’а – 4847.
- Netty socketio Реализация Socket.IO сервера на Java. Основан на Netty фреймворке, служит для обеспечение работы с сетевыми соединениями и сокетами. Лицензия: Apache 2 , рейтинг github’а – 754.
- Grpc java gRPC-Java это реализация RPC библиотеки и фреймворка на Java. Лицензия: BSD 3, рейтинг github’а – 753.
- Socket.io java client Реализация Socket.IO клиента на Java. Лицензия: MIT , рейтинг github’а – 688.
- Socket.io client.java Полнофункциональная Socket.IO клиентская библиотека для Java, совместимая с Socket.IO v1.0 и выше.. Лицензия: MIT , рейтинг github’а – 603.
- EsotericSoftware Kryonet TCP/UDP клиентская и серверная библиотека для Java, основанная на Kryo. Лицензия: BSD 3, рейтинг github’а – 539.
- Async Http Client – Ассинхронная HTTP и вебсокет клиентская библиотека, Лицензия: Apache 2.
- Comsat – Интегрирует стандартный Java веб API c Quasar fibers и actors, Лицензия: Eclipse Public 1.0.
- Grizzly – NIO фреймворк. Использует как сетевой слой в Glassfish, Лицензия: GNU 2 и CDDL 1.1.
- OkHttp – HTTP+SPDY клиент, Лицензия: Apache 2.
- Undertow – Вебсервер, предоставляющий блокирующий и неблокирующий API, основанный на NIO. Используется как сетевой слой в WildFly, Лицензия: Apache 2.
- Apache MINA Apache MINA это фреймворк для создания быстрых сетевых приложений используя Java NIO. Лицензия: Apache 2.
- Apache HttpComponents проект для создания и поддержки низкоуровневых Java компонент работающих на HTTP, Java NIO и т.п. Лицензия: Apache 2.
3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
К оглавлению
- LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2 , рейтинг github’а – 3137.
- Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github’а – 1414.
- Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.).. Лицензия: Apache 2 , рейтинг github’а – 1103.
- JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д.. Лицензия: GNU 3, рейтинг github’а – 834.
- Metamorphosis Высокопроизводительная распределенная система обмена сообщениями . Лицензия: Apache 2 , рейтинг github’а – 580.
- Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2 , рейтинг github’а – 470.
- Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github’а – 415.
- Aeron – Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
- Apache ActiveMQ – Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
- Apache Camel – Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
- Apache Kafka – High-throughput distributed messaging system, Лицензия: Apache 2.
- Hermes – Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
- JBoss HornetQ – Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
- Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2 , рейтинг github’а – 426.
- Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
- Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
- Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.
4. Работа с http и ssh
К оглавлению
- Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5022.
- AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java . Лицензия: Apache 2 , рейтинг github’а – 2149.
- Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия: MIT . , рейтинг github’а – 1477.
- Nanohttpd Крошечный и простой embeddable HTTP сервер для Java.. Лицензия: BSD 3, рейтинг github’а – 1184.
- Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2 , рейтинг github’а – 1172.
- Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации. . Лицензия: Apache 2 , рейтинг github’а – 987.
- Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT , рейтинг github’а – 857.
- Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github’а – 648.
- Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека.. Лицензия: MIT , рейтинг github’а – 537.
- Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2 , рейтинг github’а – 500.
- Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2 , рейтинг github’а – 485.
5. Работа с rest
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
К оглавлению
- Airbnb Aerosolve Библиотека для машинного обучения, дружелюбная к пользователям (простая в настройке и т. п.). Лицензия: Apache 2 , рейтинг github’а – 1672.
- Smile SmileMiner (Statistical Machine Intelligence and Learning Engine) – набор Java библиотек различных алгоритмов машинного обучения. Hello World examples. Лицензия: Apache 2 , рейтинг github’а – 1519.
- Deeplearning4j Deep Learning нейронная сеть, написанная на Java и Scala, с интеграцией с Hadoop, Spark и другими backends, которые могут работать как с центральным, так и с графическим процессором. http://deeplearning4j.org/ .Лицензия: Apache 2 , рейтинг github’а – 1172.
- Libsvm “Libsvm это библиотека для мамашиного обучения на основе support vector machines (support vector networks), поддерживает SVM classification and regression, C-SVM classification, nu-SVM classification, one-class-SVM, epsilon-SVM regression, and nu-SVM Regression. Лицензия: BSD 3, рейтинг github’а – 812.
- Neuralnetworks Алгоритмы машинного обучения и нейронных сетей с использованием GPU процессора. Лицензия: MIT , рейтинг github’а – 583.
- Datumbox framework Datumbox это фреймворк для быстрой разработки систем машинного обучения и анализа статистики. Лицензия: Apache 2 , рейтинг github’а – 525.
- Apache Mahout Зеркало Apache Mahout. Задачей проекта Apache Mahout™ является создание окружения для быстрой разработки масштабируемых и производительных систем машинного обучения. Реализует хорошо расширяемые алгоритмы машинного обучения специализированные на применении фильтрации, кластеризации и классификации. https://mahout.apache.org/ .Лицензия: Apache 2 , рейтинг github’а – 492.
- Encog java core Encog это фреймворк для машинного обучения предоставляющий большое число алгоритмов и технологий машинного обучения (нейронные сети, генетические алгоритмы и т. д.). Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache Flink – зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. https://flink.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 475.
- Apache Hadoop – зеркало Apache Hadoop. Систему для обработки Bigdata (больших данных с помощью кластеров на простом железе). http://hadoop.apache.org/ Лицензия: Apache 2 , рейтинг github’а – 803.
- Apache Spark – Фреймворк для анализа данных, используя класстер для вычислений, Подпроект: MLlib – библиотека машинного обучения для Spark.Лицензия: Apache 2.
- DeepDive – Создает структурированную информацию из неструктурированных данных и интегрирует её с существующими базами данных, Лицензия: Creative Commons Attribution 4.0.
- H2o = добавляет математические операции в Hadoop, h2o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata.http://h2o.ai/ Лицензия: Apache 2 , рейтинг github’а – 1725.
- JSAT – Алгоритмы для пре-процессинга, классификация, регрессия, и кластеризация поддерживающие многопоточное выыполнение, Лицензия: GNU 3.
- Weka – Коллекция алгоритмов для data mining задач от пре-процессинга до визуализации, Лицензия: GNU.
- Protege – Реализует редактов онтология и фреймворк для экспертных систем, Лицензия: BSD 2
- EvA2 – Фреймворк для использования эволюционных алгоритмов- ранее известный как JavaEvA/EvA. Лицензия: GNU Lesser 3.
- htm.java – Hierarchical Temporal Memory implementation in Java – это официальный сделанный сообществом порт Numenta Platform for Intelligent Computing (NuPIC). Лицензия: AGPL 3 или платная лицензия для комерческого использования.
- JAVA-ML – Java Machine Learning Library (Java-ML). Лицензия: GNU 2
- JSAT – Набор алгоритмов машинного обучения для классификации, регрессионного анализа и кластеризации. Лицензия: GNU 3
- Meka – Открытая реализация методов multi-label классификации и оценки (расширение для Weka). Лицензия: GNU
- Neuroph – Neuroph это легковесный фреймворк по создания нейронной сети на Java. Лицензия: Apache 2.
- rapaio – Набор инструментов для статистического анализа, data mining и машинного обучения на Java. Лицензия: Apache 2.
- Apache SystemML – Гибкий, маштабируемый язык машииного обучения. (incubator project). Лицензия: Apache 2.
- wAlnut – Объектно ориентированная модель для частичного моделирования человеческого мыщления. Лицензия: GNU 3
Semantic Web и Linked Data
Semantic Web (он же Web of Data, Linked Data, Linking Open Data) — это направление развития Всемирной паутины, позволяющее машинам не только отображать информацию в интернете, но и понимать ее смысл.
- Apache Marmotta Открытая платформа для работы с Linked Data. Лицензия: Apache 2.
- Apache Jena Фреймворк для разработки Semantic Web и Linked Data приложений на Java. Лицензия: Apache 2.
Constraint Satisfaction Problem Solver
Библиотеки, которые помогают в такой задачи искусственного интеллекта (ИИ) как удовлетворения ограничений (УО) (constraint satisfaction problem).
- Choco – Полностью готовая “с полки” система по решению задачи удовлетворения ограничений (УО) (constraint satisfaction problem), используя constraint programming технологии, Лицензия: BSD.
- JaCoP – Включает в себя интерфейс для языка FlatZinc, что позволяет ему выполнять модели MiniZinc, Лицензия: неизвестна
- OptaPlanner – Решает задачи бизнес планирования и оптимизации ресурсов, Лицензия: Apache 2.
- Sat4J – Наиболее продвинутый SAT решатель для логических (? boolean) и оптимизационых проблем, Лицензия: GNU Lesser 3 и Eclipse Public 1.0.
Работа с естественными языками (NLP) и распознавание речи
К оглавлению
- Stanfordnlp CoreNLP Stanford CoreNLP: Java библиотека для работы с Stanford NLP (инструментами для анализа и работы с текстом на естественных языках, например английским). Hello World examples. Лицензия: GNU 2, рейтинг github’а – 871.
- Apache OpenNLP – Набор инструментов для типовых задач таких как tokenization. Hello World examples. Лицензия: Apache 2.
- LingPipe – Набор инструментов для различных видов задач от POS tagging до анализа предложений, Лицензия: AGPL и платная лицензия, проприетарная. ИЛИ
- Mallet – Статистическая обработка естественных языков, классификация документов, кластеризация, topic modeling и многое другое, Лицензия: Eclipse Public License v1.0.
- Twitter Text Libraries – Коллекция библиотек и тестов для парсинга текста твитов(tweet). Лицензия: Apache 2.
- NLP4J NLP4J проект (старое название ClearNLP) предоставляет набор NLP инструментов для JVM языков. Этот проект разрабатывается в NLP Research Group из Emory University. Лицензия: Apache 2.
- Joshua Joshua – система машинного перевода, написанная на Java. Разработана Human Language Technology Center of Excellence at Johns Hopkins University. Лицензия: BSD 2.
- Z-MERT Z-MERT – система машинного перевода. Лицензия: GNU Lesser General Public License (LGPL).
- ClearTK – ClearTK – фреймворк для разработки систем machine learning и natural language processing которые реализаует Apache Unstructured Information Management Architecture, github star: 34. Лицензия: Apache 2.
- Apache cTAKES – Apache cTAKES™ это NLP система для получения данных из медицинской документации. Лицензия: Apache 2.
- The Stanford Natural Language Processing Group – Набор различных NLP инструментов, написанных на Java. Подпроекты: Stanford Parser – A statistical parser, Stanford POS Tagger, Stanford Named Entity Recognizer, RegexNER, Word Segmenter,Classifier,EnglishTokenizer,TokensRegex,Temporal Tagger,Pattern-based Information Extraction and Diagnostics,Stanford Relation Extractor. Лицензия: GNU 2/3.
- Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
- CMU Sphinx – Библиотека для распознавания речи. Лицензия: BSD 3.
III. Работа с сетью и интеграция
1. Веб сервера и сервера приложений (web server & application server)
К оглавлению
- Wildfly – сервер приложений (Application Server), ранее известный как JBOSS, разработанный Red Hat с расширенной поддержки Java EE. Лицензия: GNU Lesser 2.1, рейтинг github’а – 1386.
- Undertow io Undertow – высокопроизводительный неблокирующий вебсервер. Лицензия: Apache 2 , рейтинг github’а – 721.
- Apache Tomcat – зеркало Apache Tomcat — открытый web сервер с поддержкой сервлетов, jsp и некоторых аспектов J2EE. Проверенный и всесторонний сервер для сервлет и jsp. Лицензия: Apache 2 , рейтинг github’а – 531.
- Nginx clojure – Nginx модуль с использованием Clojure или Java или Groovy программ. Лицензия: BSD 3 , рейтинг github’а – 514.
- Eclipse Jetty.project – Http сервер и контейнер сервлетов. Легкий, маленький сервер, часто встраиваемый (embedded) в приложения. Лицензия: Eclipse Public 1.0 / Apache 2.0, рейтинг github’а – 512.
- Apache TomEE – Apache Tomcat сервер к которому добавили поддержку Java EE, Лицензия: Apache 2.
- WebSphere Liberty – Легковесный, модульный сервер, разработанный IBM, Лицензия: платная, проприетарная
- GlassFish – Сервер приложений и образцовая реализация Java EE от Oracle, Лицензия: GNU 2 или CDDL 1.0
- Apache Geronimo Java EE Application Server. Лицензия: Apache 2.
- Apache James Apache Java Enterprise Mail Server (или Apache James) это 100% чистый Java SMTP и POP3 постовый сервер и NNTP News сервер. Лицензия: Apache 2.
2. Сеть и сокеты
К оглавлению
- Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2 , рейтинг github’а – 4847.
- Netty socketio Реализация Socket.IO сервера на Java. Основан на Netty фреймворке, служит для обеспечение работы с сетевыми соединениями и сокетами. Лицензия: Apache 2 , рейтинг github’а – 754.
- Grpc java gRPC-Java это реализация RPC библиотеки и фреймворка на Java. Лицензия: BSD 3, рейтинг github’а – 753.
- Socket.io java client Реализация Socket.IO клиента на Java. Лицензия: MIT , рейтинг github’а – 688.
- Socket.io client.java Полнофункциональная Socket.IO клиентская библиотека для Java, совместимая с Socket.IO v1.0 и выше.. Лицензия: MIT , рейтинг github’а – 603.
- EsotericSoftware Kryonet TCP/UDP клиентская и серверная библиотека для Java, основанная на Kryo. Лицензия: BSD 3, рейтинг github’а – 539.
- Async Http Client – Ассинхронная HTTP и вебсокет клиентская библиотека, Лицензия: Apache 2.
- Comsat – Интегрирует стандартный Java веб API c Quasar fibers и actors, Лицензия: Eclipse Public 1.0.
- Grizzly – NIO фреймворк. Использует как сетевой слой в Glassfish, Лицензия: GNU 2 и CDDL 1.1.
- OkHttp – HTTP+SPDY клиент, Лицензия: Apache 2.
- Undertow – Вебсервер, предоставляющий блокирующий и неблокирующий API, основанный на NIO. Используется как сетевой слой в WildFly, Лицензия: Apache 2.
- Apache MINA Apache MINA это фреймворк для создания быстрых сетевых приложений используя Java NIO. Лицензия: Apache 2.
- Apache HttpComponents проект для создания и поддержки низкоуровневых Java компонент работающих на HTTP, Java NIO и т.п. Лицензия: Apache 2.
3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
К оглавлению
- LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2 , рейтинг github’а – 3137.
- Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github’а – 1414.
- Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.).. Лицензия: Apache 2 , рейтинг github’а – 1103.
- JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д.. Лицензия: GNU 3, рейтинг github’а – 834.
- Metamorphosis Высокопроизводительная распределенная система обмена сообщениями . Лицензия: Apache 2 , рейтинг github’а – 580.
- Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2 , рейтинг github’а – 470.
- Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github’а – 415.
- Aeron – Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
- Apache ActiveMQ – Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
- Apache Camel – Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
- Apache Kafka – High-throughput distributed messaging system, Лицензия: Apache 2.
- Hermes – Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
- JBoss HornetQ – Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
- Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2 , рейтинг github’а – 426.
- Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
- Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
- Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.
4. Работа с http и ssh
К оглавлению
- Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5022.
- AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java . Лицензия: Apache 2 , рейтинг github’а – 2149.
- Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия: MIT . , рейтинг github’а – 1477.
- Nanohttpd Крошечный и простой embeddable HTTP сервер для Java.. Лицензия: BSD 3, рейтинг github’а – 1184.
- Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2 , рейтинг github’а – 1172.
- Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации. . Лицензия: Apache 2 , рейтинг github’а – 987.
- Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT , рейтинг github’а – 857.
- Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github’а – 648.
- Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека.. Лицензия: MIT , рейтинг github’а – 537.
- Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2 , рейтинг github’а – 500.
- Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2 , рейтинг github’а – 485.
5. Работа с rest
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
Библиотеки, которые помогают в такой задачи искусственного интеллекта (ИИ) как удовлетворения ограничений (УО) (constraint satisfaction problem).
- Choco – Полностью готовая “с полки” система по решению задачи удовлетворения ограничений (УО) (constraint satisfaction problem), используя constraint programming технологии, Лицензия: BSD.
- JaCoP – Включает в себя интерфейс для языка FlatZinc, что позволяет ему выполнять модели MiniZinc, Лицензия: неизвестна
- OptaPlanner – Решает задачи бизнес планирования и оптимизации ресурсов, Лицензия: Apache 2.
- Sat4J – Наиболее продвинутый SAT решатель для логических (? boolean) и оптимизационых проблем, Лицензия: GNU Lesser 3 и Eclipse Public 1.0.
Работа с естественными языками (NLP) и распознавание речи
К оглавлению
- Stanfordnlp CoreNLP Stanford CoreNLP: Java библиотека для работы с Stanford NLP (инструментами для анализа и работы с текстом на естественных языках, например английским). Hello World examples. Лицензия: GNU 2, рейтинг github’а – 871.
- Apache OpenNLP – Набор инструментов для типовых задач таких как tokenization. Hello World examples. Лицензия: Apache 2.
- LingPipe – Набор инструментов для различных видов задач от POS tagging до анализа предложений, Лицензия: AGPL и платная лицензия, проприетарная. ИЛИ
- Mallet – Статистическая обработка естественных языков, классификация документов, кластеризация, topic modeling и многое другое, Лицензия: Eclipse Public License v1.0.
- Twitter Text Libraries – Коллекция библиотек и тестов для парсинга текста твитов(tweet). Лицензия: Apache 2.
- NLP4J NLP4J проект (старое название ClearNLP) предоставляет набор NLP инструментов для JVM языков. Этот проект разрабатывается в NLP Research Group из Emory University. Лицензия: Apache 2.
- Joshua Joshua – система машинного перевода, написанная на Java. Разработана Human Language Technology Center of Excellence at Johns Hopkins University. Лицензия: BSD 2.
- Z-MERT Z-MERT – система машинного перевода. Лицензия: GNU Lesser General Public License (LGPL).
- ClearTK – ClearTK – фреймворк для разработки систем machine learning и natural language processing которые реализаует Apache Unstructured Information Management Architecture, github star: 34. Лицензия: Apache 2.
- Apache cTAKES – Apache cTAKES™ это NLP система для получения данных из медицинской документации. Лицензия: Apache 2.
- The Stanford Natural Language Processing Group – Набор различных NLP инструментов, написанных на Java. Подпроекты: Stanford Parser – A statistical parser, Stanford POS Tagger, Stanford Named Entity Recognizer, RegexNER, Word Segmenter,Classifier,EnglishTokenizer,TokensRegex,Temporal Tagger,Pattern-based Information Extraction and Diagnostics,Stanford Relation Extractor. Лицензия: GNU 2/3.
- Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
- CMU Sphinx – Библиотека для распознавания речи. Лицензия: BSD 3.
III. Работа с сетью и интеграция
1. Веб сервера и сервера приложений (web server & application server)
К оглавлению
- Wildfly – сервер приложений (Application Server), ранее известный как JBOSS, разработанный Red Hat с расширенной поддержки Java EE. Лицензия: GNU Lesser 2.1, рейтинг github’а – 1386.
- Undertow io Undertow – высокопроизводительный неблокирующий вебсервер. Лицензия: Apache 2 , рейтинг github’а – 721.
- Apache Tomcat – зеркало Apache Tomcat — открытый web сервер с поддержкой сервлетов, jsp и некоторых аспектов J2EE. Проверенный и всесторонний сервер для сервлет и jsp. Лицензия: Apache 2 , рейтинг github’а – 531.
- Nginx clojure – Nginx модуль с использованием Clojure или Java или Groovy программ. Лицензия: BSD 3 , рейтинг github’а – 514.
- Eclipse Jetty.project – Http сервер и контейнер сервлетов. Легкий, маленький сервер, часто встраиваемый (embedded) в приложения. Лицензия: Eclipse Public 1.0 / Apache 2.0, рейтинг github’а – 512.
- Apache TomEE – Apache Tomcat сервер к которому добавили поддержку Java EE, Лицензия: Apache 2.
- WebSphere Liberty – Легковесный, модульный сервер, разработанный IBM, Лицензия: платная, проприетарная
- GlassFish – Сервер приложений и образцовая реализация Java EE от Oracle, Лицензия: GNU 2 или CDDL 1.0
- Apache Geronimo Java EE Application Server. Лицензия: Apache 2.
- Apache James Apache Java Enterprise Mail Server (или Apache James) это 100% чистый Java SMTP и POP3 постовый сервер и NNTP News сервер. Лицензия: Apache 2.
2. Сеть и сокеты
К оглавлению
- Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2 , рейтинг github’а – 4847.
- Netty socketio Реализация Socket.IO сервера на Java. Основан на Netty фреймворке, служит для обеспечение работы с сетевыми соединениями и сокетами. Лицензия: Apache 2 , рейтинг github’а – 754.
- Grpc java gRPC-Java это реализация RPC библиотеки и фреймворка на Java. Лицензия: BSD 3, рейтинг github’а – 753.
- Socket.io java client Реализация Socket.IO клиента на Java. Лицензия: MIT , рейтинг github’а – 688.
- Socket.io client.java Полнофункциональная Socket.IO клиентская библиотека для Java, совместимая с Socket.IO v1.0 и выше.. Лицензия: MIT , рейтинг github’а – 603.
- EsotericSoftware Kryonet TCP/UDP клиентская и серверная библиотека для Java, основанная на Kryo. Лицензия: BSD 3, рейтинг github’а – 539.
- Async Http Client – Ассинхронная HTTP и вебсокет клиентская библиотека, Лицензия: Apache 2.
- Comsat – Интегрирует стандартный Java веб API c Quasar fibers и actors, Лицензия: Eclipse Public 1.0.
- Grizzly – NIO фреймворк. Использует как сетевой слой в Glassfish, Лицензия: GNU 2 и CDDL 1.1.
- OkHttp – HTTP+SPDY клиент, Лицензия: Apache 2.
- Undertow – Вебсервер, предоставляющий блокирующий и неблокирующий API, основанный на NIO. Используется как сетевой слой в WildFly, Лицензия: Apache 2.
- Apache MINA Apache MINA это фреймворк для создания быстрых сетевых приложений используя Java NIO. Лицензия: Apache 2.
- Apache HttpComponents проект для создания и поддержки низкоуровневых Java компонент работающих на HTTP, Java NIO и т.п. Лицензия: Apache 2.
3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
К оглавлению
- LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2 , рейтинг github’а – 3137.
- Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github’а – 1414.
- Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.).. Лицензия: Apache 2 , рейтинг github’а – 1103.
- JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д.. Лицензия: GNU 3, рейтинг github’а – 834.
- Metamorphosis Высокопроизводительная распределенная система обмена сообщениями . Лицензия: Apache 2 , рейтинг github’а – 580.
- Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2 , рейтинг github’а – 470.
- Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github’а – 415.
- Aeron – Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
- Apache ActiveMQ – Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
- Apache Camel – Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
- Apache Kafka – High-throughput distributed messaging system, Лицензия: Apache 2.
- Hermes – Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
- JBoss HornetQ – Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
- Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2 , рейтинг github’а – 426.
- Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
- Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
- Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.
4. Работа с http и ssh
К оглавлению
- Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5022.
- AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java . Лицензия: Apache 2 , рейтинг github’а – 2149.
- Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия: MIT . , рейтинг github’а – 1477.
- Nanohttpd Крошечный и простой embeddable HTTP сервер для Java.. Лицензия: BSD 3, рейтинг github’а – 1184.
- Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2 , рейтинг github’а – 1172.
- Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации. . Лицензия: Apache 2 , рейтинг github’а – 987.
- Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT , рейтинг github’а – 857.
- Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github’а – 648.
- Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека.. Лицензия: MIT , рейтинг github’а – 537.
- Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2 , рейтинг github’а – 500.
- Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2 , рейтинг github’а – 485.
5. Работа с rest
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
К оглавлению
- Wildfly – сервер приложений (Application Server), ранее известный как JBOSS, разработанный Red Hat с расширенной поддержки Java EE. Лицензия: GNU Lesser 2.1, рейтинг github’а – 1386.
- Undertow io Undertow – высокопроизводительный неблокирующий вебсервер. Лицензия: Apache 2 , рейтинг github’а – 721.
- Apache Tomcat – зеркало Apache Tomcat — открытый web сервер с поддержкой сервлетов, jsp и некоторых аспектов J2EE. Проверенный и всесторонний сервер для сервлет и jsp. Лицензия: Apache 2 , рейтинг github’а – 531.
- Nginx clojure – Nginx модуль с использованием Clojure или Java или Groovy программ. Лицензия: BSD 3 , рейтинг github’а – 514.
- Eclipse Jetty.project – Http сервер и контейнер сервлетов. Легкий, маленький сервер, часто встраиваемый (embedded) в приложения. Лицензия: Eclipse Public 1.0 / Apache 2.0, рейтинг github’а – 512.
- Apache TomEE – Apache Tomcat сервер к которому добавили поддержку Java EE, Лицензия: Apache 2.
- WebSphere Liberty – Легковесный, модульный сервер, разработанный IBM, Лицензия: платная, проприетарная
- GlassFish – Сервер приложений и образцовая реализация Java EE от Oracle, Лицензия: GNU 2 или CDDL 1.0
- Apache Geronimo Java EE Application Server. Лицензия: Apache 2.
- Apache James Apache Java Enterprise Mail Server (или Apache James) это 100% чистый Java SMTP и POP3 постовый сервер и NNTP News сервер. Лицензия: Apache 2.
2. Сеть и сокеты
К оглавлению
- Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2 , рейтинг github’а – 4847.
- Netty socketio Реализация Socket.IO сервера на Java. Основан на Netty фреймворке, служит для обеспечение работы с сетевыми соединениями и сокетами. Лицензия: Apache 2 , рейтинг github’а – 754.
- Grpc java gRPC-Java это реализация RPC библиотеки и фреймворка на Java. Лицензия: BSD 3, рейтинг github’а – 753.
- Socket.io java client Реализация Socket.IO клиента на Java. Лицензия: MIT , рейтинг github’а – 688.
- Socket.io client.java Полнофункциональная Socket.IO клиентская библиотека для Java, совместимая с Socket.IO v1.0 и выше.. Лицензия: MIT , рейтинг github’а – 603.
- EsotericSoftware Kryonet TCP/UDP клиентская и серверная библиотека для Java, основанная на Kryo. Лицензия: BSD 3, рейтинг github’а – 539.
- Async Http Client – Ассинхронная HTTP и вебсокет клиентская библиотека, Лицензия: Apache 2.
- Comsat – Интегрирует стандартный Java веб API c Quasar fibers и actors, Лицензия: Eclipse Public 1.0.
- Grizzly – NIO фреймворк. Использует как сетевой слой в Glassfish, Лицензия: GNU 2 и CDDL 1.1.
- OkHttp – HTTP+SPDY клиент, Лицензия: Apache 2.
- Undertow – Вебсервер, предоставляющий блокирующий и неблокирующий API, основанный на NIO. Используется как сетевой слой в WildFly, Лицензия: Apache 2.
- Apache MINA Apache MINA это фреймворк для создания быстрых сетевых приложений используя Java NIO. Лицензия: Apache 2.
- Apache HttpComponents проект для создания и поддержки низкоуровневых Java компонент работающих на HTTP, Java NIO и т.п. Лицензия: Apache 2.
3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений
К оглавлению
- LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2 , рейтинг github’а – 3137.
- Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github’а – 1414.
- Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.).. Лицензия: Apache 2 , рейтинг github’а – 1103.
- JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д.. Лицензия: GNU 3, рейтинг github’а – 834.
- Metamorphosis Высокопроизводительная распределенная система обмена сообщениями . Лицензия: Apache 2 , рейтинг github’а – 580.
- Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2 , рейтинг github’а – 470.
- Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github’а – 415.
- Aeron – Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
- Apache ActiveMQ – Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
- Apache Camel – Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
- Apache Kafka – High-throughput distributed messaging system, Лицензия: Apache 2.
- Hermes – Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
- JBoss HornetQ – Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
- Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2 , рейтинг github’а – 426.
- Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
- Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
- Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.
4. Работа с http и ssh
К оглавлению
- Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5022.
- AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java . Лицензия: Apache 2 , рейтинг github’а – 2149.
- Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия: MIT . , рейтинг github’а – 1477.
- Nanohttpd Крошечный и простой embeddable HTTP сервер для Java.. Лицензия: BSD 3, рейтинг github’а – 1184.
- Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2 , рейтинг github’а – 1172.
- Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации. . Лицензия: Apache 2 , рейтинг github’а – 987.
- Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT , рейтинг github’а – 857.
- Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github’а – 648.
- Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека.. Лицензия: MIT , рейтинг github’а – 537.
- Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2 , рейтинг github’а – 500.
- Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2 , рейтинг github’а – 485.
5. Работа с rest
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
К оглавлению
- LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2 , рейтинг github’а – 3137.
- Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github’а – 1414.
- Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.).. Лицензия: Apache 2 , рейтинг github’а – 1103.
- JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д.. Лицензия: GNU 3, рейтинг github’а – 834.
- Metamorphosis Высокопроизводительная распределенная система обмена сообщениями . Лицензия: Apache 2 , рейтинг github’а – 580.
- Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2 , рейтинг github’а – 470.
- Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github’а – 415.
- Aeron – Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
- Apache ActiveMQ – Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
- Apache Camel – Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
- Apache Kafka – High-throughput distributed messaging system, Лицензия: Apache 2.
- Hermes – Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
- JBoss HornetQ – Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
- Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2 , рейтинг github’а – 426.
- Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
- Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
- Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.
4. Работа с http и ssh
К оглавлению
- Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5022.
- AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java . Лицензия: Apache 2 , рейтинг github’а – 2149.
- Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия: MIT . , рейтинг github’а – 1477.
- Nanohttpd Крошечный и простой embeddable HTTP сервер для Java.. Лицензия: BSD 3, рейтинг github’а – 1184.
- Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2 , рейтинг github’а – 1172.
- Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации. . Лицензия: Apache 2 , рейтинг github’а – 987.
- Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT , рейтинг github’а – 857.
- Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github’а – 648.
- Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека.. Лицензия: MIT , рейтинг github’а – 537.
- Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2 , рейтинг github’а – 500.
- Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2 , рейтинг github’а – 485.
5. Работа с rest
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
К оглавлению
- Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2 , рейтинг github’а – 5945.
- Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2 , рейтинг github’а – 3427.
- Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2 , рейтинг github’а – 2657.
- Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2 , рейтинг github’а – 2352.
- Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github’а – 864.
- Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию.. Лицензия: Apache 2 , рейтинг github’а – 825.
- Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC.. Лицензия: Apache 2 , рейтинг github’а – 456.
- Feign – HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
- RESTEasy – Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
- RestExpress – Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
- RestX – Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
- Spark – фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
- Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
- Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.
- Rapidoid – Простой, безопасный и очень быстрый фреймвок с embedded HTTP сервером, GUI компонентами и dependency injection, github’s star – 566. Лицензия: Apache 2.
6. Интеграционные фреймворки
К оглавлению
- Jmxtrans Интеграция JVM с “внешним мира” (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github’а – 708.
- Apache Camel Зеркало Apache Camel. Apache Camel – мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns.. Лицензия: Apache 2 , рейтинг github’а – 490.
- Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.
- Spring Integration – Интеграционный фреймворк от проекта Spring. Лицензия: Apache 2 , рейтинг github’а – 435.
7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
К оглавлению
- Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2 , рейтинг github’а – 3323.
- Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ .Hello World examples. Лицензия: MIT , рейтинг github’а – 2006.
- Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение.. Лицензия: Apache 2 , рейтинг github’а – 1089.
- Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github’а – 836.
- Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2 , рейтинг github’а – 775.
- Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2 , рейтинг github’а – 692.
- Apache Nutch – Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
- Crawler4j – Простой и легковесный вебпаук, Лицензия: Apache 2.
8. Работа с Json
К оглавлению
JSON парсеры
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
- Gson – Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, рейтинг github’а – 4120. User guide и Hello World examples . Лицензия: Apache 2.
- LoganSquare -Библиотека парсинга и сериализации JSON, основанная на Jackson’s streaming API. По словам разработчиков, превосходит по производительности GSON и Jackson библиотеки, рейтинг github’а – 2188. User guide и Hello World examples. Лицензия: Apache 2.
- JSON java Реализация работы с JSON в Java от разработчиков JSON стандарта, рейтинг github’а – 1937. User guide и Hello World examples. Лицензия: Crockford’s license (MIT License + “Good, not Evil”).
- Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java, рейтинг github’а – 1732. User guide и Hello World examples. Лицензия: Apache 2
- Instagram Ig json parser Быстрый JSON парсер для java проектов, рейтинг github’а – 921. User guide и Hello World examples. Лицензия: BSD 3.
- Jackson – Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки. Подпроекты: Jackson core Базовая часть функционала, Jackson databind Базовая реализация databind’а, рейтинг github’а – 881. User guide и Hello World examples. Лицензия: Apache 2.
- JSON.simple – Простая библиотека для генерации и парсинга JSON, рейтинг github’а – 161. User guide and Hello World examples. Лицензия: Apache 2.
- Genson – Мощная и простая в использовании Java библиотека для преобразования в/из JSON, рейтинг github’а – 108. User guide и Hello World examples. Лицензия: Apache 2.
Аналог XPath для JSON
- Jayway JsonPath Java JsonPath — реализация аналога XPATH только для Json, а не XML, рейтинг github’а – 849. User guide и Hello World examples. Лицензия: Apache 2.
- Alibaba Fastjson Быстрый JSON обработчик, рейтинг github’а – 4851. User guide и Hello World examples. Лицензия: Apache 2.
Генерация Java классов из JSON или JSON схемы и JSON валидация
- Jsonschema2pojo Генерация Java классов из JSON схемы (или примера JSON) с аннотациями для data-binding для Jackson 1.x or 2.x, Gson и т. п.., рейтинг github’а – 1664. User guide и Hello World examples. Лицензия: Apache 2.
- Json schema validator Валидация JSON схемы, реализована на чистой Java, создана с целью проверки Json файлов, используя Json схемы., так же может генерировать Java классы из схемы и наоборот, рейтинг github’а – 547. User guide и Hello World examples. Лицензия: GNU Lesser 3/Apache 2.
9. CSV
Frameworks and libraries that simplify reading/writing CSV data. К оглавлению
- opencsv – Простой CSV парсер, Лицензия: Apache 2.
- Super CSV – Мощный CSV парсер, поддерживающий Dozer, Joda-Time и Java 8, Лицензия: Apache 2.
- uniVocity-parsers – Один из самых быстрых и многофункционных CSV парсеров. Так же в библиотеке есть парсеры для TSV и файлом с записями фиксированной ширины, Лицензия: Apache 2.
10. Интеграция с Api разных систем (соц. сетей и т. п.)
К оглавлению
- Twitter Zipkin Zipkin это распределенная системы отслеживания, которая используется Twitter для сборк информации о работе всех его различных сервисов. Лицензия: Apache 2 , рейтинг github’а – 2442.
- Wizcorp Phonegap facebook plugin Официальный плагин для Facebook в Apache Cordova/PhoneGap. Лицензия: Apache 2 , рейтинг github’а – 1587.
- Twitter4j Twitter4J это библиотека для работы с Twitter API в Java (поддерживает работу с JSON, REST Search API, Apache HttpClient, Async API, Streaming API, Async API, Streaming API, HTTP/2). Лицензия: Apache 2 , рейтинг github’а – 1551.
- Netflix Ice AWS Usage Tool — система работы с Amazon Web Services. Лицензия: Apache 2 , рейтинг github’а – 1358.
- Twitter Commons Библиотека для работы с Twitter для python и JVM. Лицензия: Apache 2 , рейтинг github’а – 964.
- Alibaba RocketMQ RocketMQ – это реализация системы обмена сообщениями MQ (Message queue) для взаимодействия с различными сервисами портала Alibaba. Лицензия: Apache 2 , рейтинг github’а – 627.
- Twitter Hbc Java HTTP клиент для работы Twitter’s Streaming API. Лицензия: Apache 2 , рейтинг github’а – 498.
- Spring projects Spring social Spring Social это расширение Spring Framework, которые позволяет интегрировать ваши приложения с Software-as-a-Service (SaaS) провайдерами, такими как Facebook или Twitter. Лицензия: Apache 2 , рейтинг github’а – 409.
11. Работа с биткойном
К оглавлению
- XChange XChange это Java библиотека предоставляющая удобный API для взаимодействия с более чем 50+ Bitcoin и Altcoin обменными биржами . Лицензия: MIT , рейтинг github’а – 455.
- bitcoinj Библиотека для работы с Bitcoin. Лицензия: Apache 2 , рейтинг github’а – 453.
- DiabloMiner OpenCL майнер для Bitcoin. Лицензия: GNU 3, рейтинг github’а – 443.
12. Облачные системы
К оглавлению
- Netflix SimianArmy – инструменты для поддержки ваших облачных операций. Chaos Monkey это гибкий инструментарий для создания устойчивых к случайным ошибкам приложений.. Лицензия: Apache 2 , рейтинг github’а – 2892.
- Netflix Eureka это REST (Representational State Transfer) — сервис для управления AWS (Amazon Web Services ) облаками, обеспечение load balancing и отказоустойчивости. Лицензия: Apache 2 , рейтинг github’а – 1051.
- Aws sdk java Официальное зеркало Java AWS SDK (Amazon Web Services). Лицензия: Apache 2 , рейтинг github’а – 1008.
- Syncany это облачное хранилище и файл обменное приложение, которое фокусируется на безопансоти и абстрагирования от системы хранения. Лицензия: GNU 3, рейтинг github’а – 772.
- Legacy Jclouds это открытая библиотека, которая поможет начать работать с облаками используя ваши навыки разработки на Java. Поддерживает многие виды облаков включая Amazon, VMWare, Azure, и Rackspace.. Лицензия: Apache 2 , рейтинг github’а – 507.
- Elasticsearch – одна из самых популярных систем распределенного облачного поиска. . Лицензия: Apache 2 , рейтинг github’а – 11833.
- Elasticsearch cloud aws Плагин для работы ElasticSearch с Amazon Web Service (AWS) облаками. Лицензия: Apache 2 , рейтинг github’а – 435.
- Elasticsearch analysis ik The IK Analysis плагин интеграции с Lucene IK анализаторов для elastic search, поддерживающий пользовательские словари. Лицензия: ?, рейтинг github’а – 395.
- Apache CloudStack Apache CloudStack это IaaS (“Infrastracture as a Service”) облачная платформа. Лицензия: Apache 2.
- Apache Stratos Apache Stratos это Platform-as-a-Service (PaaS) облачная платформа. Лицензия: Apache 2.
- Apache Airavata Apache Airavata это фреймворк выполнения и управления заданиями в распределенных ресурсах, таких как кластеры, суперкомпьютеры, national grids, академические и комерческие облака. Лицензия: Apache 2.
13. Cluster Management
К оглавлению
- Twitter Zipkin Zipkin это распределенная системы отслеживания, которая используется Twitter для сборк информации о работе всех его различных сервисов. Лицензия: Apache 2 , рейтинг github’а – 2442.
- Wizcorp Phonegap facebook plugin Официальный плагин для Facebook в Apache Cordova/PhoneGap. Лицензия: Apache 2 , рейтинг github’а – 1587.
- Twitter4j Twitter4J это библиотека для работы с Twitter API в Java (поддерживает работу с JSON, REST Search API, Apache HttpClient, Async API, Streaming API, Async API, Streaming API, HTTP/2). Лицензия: Apache 2 , рейтинг github’а – 1551.
- Netflix Ice AWS Usage Tool — система работы с Amazon Web Services. Лицензия: Apache 2 , рейтинг github’а – 1358.
- Twitter Commons Библиотека для работы с Twitter для python и JVM. Лицензия: Apache 2 , рейтинг github’а – 964.
- Alibaba RocketMQ RocketMQ – это реализация системы обмена сообщениями MQ (Message queue) для взаимодействия с различными сервисами портала Alibaba. Лицензия: Apache 2 , рейтинг github’а – 627.
- Twitter Hbc Java HTTP клиент для работы Twitter’s Streaming API. Лицензия: Apache 2 , рейтинг github’а – 498.
- Spring projects Spring social Spring Social это расширение Spring Framework, которые позволяет интегрировать ваши приложения с Software-as-a-Service (SaaS) провайдерами, такими как Facebook или Twitter. Лицензия: Apache 2 , рейтинг github’а – 409.
11. Работа с биткойном
К оглавлению
- XChange XChange это Java библиотека предоставляющая удобный API для взаимодействия с более чем 50+ Bitcoin и Altcoin обменными биржами . Лицензия: MIT , рейтинг github’а – 455.
- bitcoinj Библиотека для работы с Bitcoin. Лицензия: Apache 2 , рейтинг github’а – 453.
- DiabloMiner OpenCL майнер для Bitcoin. Лицензия: GNU 3, рейтинг github’а – 443.
12. Облачные системы
К оглавлению
- Netflix SimianArmy – инструменты для поддержки ваших облачных операций. Chaos Monkey это гибкий инструментарий для создания устойчивых к случайным ошибкам приложений.. Лицензия: Apache 2 , рейтинг github’а – 2892.
- Netflix Eureka это REST (Representational State Transfer) — сервис для управления AWS (Amazon Web Services ) облаками, обеспечение load balancing и отказоустойчивости. Лицензия: Apache 2 , рейтинг github’а – 1051.
- Aws sdk java Официальное зеркало Java AWS SDK (Amazon Web Services). Лицензия: Apache 2 , рейтинг github’а – 1008.
- Syncany это облачное хранилище и файл обменное приложение, которое фокусируется на безопансоти и абстрагирования от системы хранения. Лицензия: GNU 3, рейтинг github’а – 772.
- Legacy Jclouds это открытая библиотека, которая поможет начать работать с облаками используя ваши навыки разработки на Java. Поддерживает многие виды облаков включая Amazon, VMWare, Azure, и Rackspace.. Лицензия: Apache 2 , рейтинг github’а – 507.
- Elasticsearch – одна из самых популярных систем распределенного облачного поиска. . Лицензия: Apache 2 , рейтинг github’а – 11833.
- Elasticsearch cloud aws Плагин для работы ElasticSearch с Amazon Web Service (AWS) облаками. Лицензия: Apache 2 , рейтинг github’а – 435.
- Elasticsearch analysis ik The IK Analysis плагин интеграции с Lucene IK анализаторов для elastic search, поддерживающий пользовательские словари. Лицензия: ?, рейтинг github’а – 395.
- Apache CloudStack Apache CloudStack это IaaS (“Infrastracture as a Service”) облачная платформа. Лицензия: Apache 2.
- Apache Stratos Apache Stratos это Platform-as-a-Service (PaaS) облачная платформа. Лицензия: Apache 2.
- Apache Airavata Apache Airavata это фреймворк выполнения и управления заданиями в распределенных ресурсах, таких как кластеры, суперкомпьютеры, national grids, академические и комерческие облака. Лицензия: Apache 2.
13. Cluster Management
К оглавлению
- Netflix SimianArmy – инструменты для поддержки ваших облачных операций. Chaos Monkey это гибкий инструментарий для создания устойчивых к случайным ошибкам приложений.. Лицензия: Apache 2 , рейтинг github’а – 2892.
- Netflix Eureka это REST (Representational State Transfer) — сервис для управления AWS (Amazon Web Services ) облаками, обеспечение load balancing и отказоустойчивости. Лицензия: Apache 2 , рейтинг github’а – 1051.
- Aws sdk java Официальное зеркало Java AWS SDK (Amazon Web Services). Лицензия: Apache 2 , рейтинг github’а – 1008.
- Syncany это облачное хранилище и файл обменное приложение, которое фокусируется на безопансоти и абстрагирования от системы хранения. Лицензия: GNU 3, рейтинг github’а – 772.
- Legacy Jclouds это открытая библиотека, которая поможет начать работать с облаками используя ваши навыки разработки на Java. Поддерживает многие виды облаков включая Amazon, VMWare, Azure, и Rackspace.. Лицензия: Apache 2 , рейтинг github’а – 507.
- Elasticsearch – одна из самых популярных систем распределенного облачного поиска. . Лицензия: Apache 2 , рейтинг github’а – 11833.
- Elasticsearch cloud aws Плагин для работы ElasticSearch с Amazon Web Service (AWS) облаками. Лицензия: Apache 2 , рейтинг github’а – 435.
- Elasticsearch analysis ik The IK Analysis плагин интеграции с Lucene IK анализаторов для elastic search, поддерживающий пользовательские словари. Лицензия: ?, рейтинг github’а – 395.
- Apache CloudStack Apache CloudStack это IaaS (“Infrastracture as a Service”) облачная платформа. Лицензия: Apache 2.
- Apache Stratos Apache Stratos это Platform-as-a-Service (PaaS) облачная платформа. Лицензия: Apache 2.
- Apache Airavata Apache Airavata это фреймворк выполнения и управления заданиями в распределенных ресурсах, таких как кластеры, суперкомпьютеры, national grids, академические и комерческие облака. Лицензия: Apache 2.
13. Cluster Management
Фреймворки для динамического управления приложением внутри класстера. К оглавлению
- Apache Aurora – Apache Aurora это Apache Mesos фреймворк для длительных сервисов и cron jobs, Лицензия: Apache 2.
- Singularity – Singularity это Apache Mesos фреймворк, который делает разработку и обслуживание проще. Он поддерживает вебсервисы, фоновое выполнение, запуск задач по расписанию и выполнение одноразовых задач, Лицензия: неизвесна, на сайте не найдена!.
- Apache Helix Это фреймворк управления кластером. Лицензия: Apache 2.
- Apache Airavata Apache Airavata это фреймворк выполнения и управления заданиями в распределенных ресурсах, таких как кластеры, суперкомпьютеры, national grids, академические и комерческие облака. Лицензия: Apache 2.
14. Работа с документами (XLS, DOC, PDF и т.п.)](#14-document-processing-xls-doc-and-pdf)
Libraries that assist with processing office document formats.
- Apache POI – Поддерживает OOXML (XLSX, DOCX, PPTX) так же как и OLE2 (XLS, DOC or PPT), Лицензия: Apache 2.
- documents4j – API для конверторов в разные форматы документов, используя third-party конверторы такие как MS Word, Лицензия: Apache 2.
- Docx4j Docx4j библиотека для работы с Microsoft OpenXML файлами (Word docx, Powerpoint pptx, и Excel xlsx) через JAXB. Лицензия: Apache 2.
- jOpenDocument – Работа с OpenDocument формата, Лицензия: GNU или платная лицензия для коммерческого использования. ИЛИ
- Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
PDF
Everything that helps with the creation of PDF files. К оглавлению
- Apache FOP – Создание PDF из XSL-FO, Лицензия: Apache 2.
- Apache PDFBox – Набор инструментов для создания и изменения PDF, Лицензия: Apache 2.
- DynamicReports – Улучшение JasperReports, Лицензия: GNU Lesser 3.
- flyingsaucer – lying Saucer это Java библиотека для использования XML или XHTML с использованием CSS 2.1 для генерации PDF, изображений или Swing panels. Лицензия: GNU Lesser 2.1.
- iText – Создание PDF файлов из программы, но требует лицензию для комерчиского использования, Лицензия: AGPL или платная лицензия для комерческого использования. ИЛИ
- JasperReports – Комплексный движок отчетов, Лицензия: GNU Lesser.
15. Работа с нативным API разных ОС](#15-native)
For working with platform-specific native libraries. К оглавлению
- Java Native Access (JNA) Java Native Access — система доступа к нативному API. Так же предоставляет интерфейсы к основным системых библиотекам. Лицензия: GNU Lesser 2.1 или Apache 2. , рейтинг github’а – 1750.
- JNR – Работа с нативными библиотеками без использвания JNI. Так же предоставляет интерфейсы к основным системых библиотекамs. Те же задачи что у JNA, но работает быстрее, и служит основой для разрабатываемого Project Panama, Лицензия: Apache 2.
16. XML и SOAP
- Xalan Xalan-J это XSLT processor, написанный на Java. Лицензия: Apache 2.
- Xerces Xerces-J это validating XML парсер, написанный на Java. Лицензия: Apache 2.
- XML Graphics Конвертация XML в графическое представление. Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- VXQuery Apache VXQuery реализует параллельный XML Query processor. Лицензия: Apache 2.
- Apache Axis Веб контейнер который помогает создавать, развертывать и запускать вебсервисы. Axis2 это Web Services / SOAP / WSDL движок. Лицензия: Apache 2.
17. Интеграция с сервисами геопозиционирования
Библиотеки для работы с сервисами геопозиционирования.
- Apache SIS – Библиотека для разработки приложений геопозиционирования. Лицензия: Apache 2.
- Geo – GeoHash утилиты для Java. Лицензия: Apache 2.
- Geotoolkit.org – Библиотека для разработки приложений геопозиционирования. Работает на основе Apache SIS проекта. Лицензия: GNU Lesser 2.1.
- GeoTools – Библиотека предоставляющая инструменты для получения данных геопозиционирования. Лицензия: GNU Lesser 2.1.
- H2GIS – Геопозиционированое расширение для базы данных H2. Лицензия: GPL 3.
- Jgeohash – Библиотека, помогающая Java разработчикам в использовании GeoHash алгоритмов. Лицензия: Apache 2.
- JTS Topology Suite – API для 2D геопозиционирования. Лицензия: GNU Lesser 3.
- Mapsforge – Продукт для геопозиционирования на карте, основанной на OpenStreetMap данных. Лицензия: GNU Lesser 3.
- Spatial4j – Универсальная библиотека геопозиционирования. Лицензия: Apache 2.
IV. Тестирование
1. Тестирование
К оглавлению
- Junit Простой и популярный фреймворк для unit тестирования . Лицензия: Eclipse Public 1.0 , рейтинг github’а – 3662.
- Mockito Mocking фреймворк для unit тестов, написанных на Java. Лицензия: MIT , рейтинг github’а – 1307.
- Selenium Фреймворк для автоматического тестирования в браузере . Лицензия: Apache 2 , рейтинг github’а – 1305.
- Cucumber jvm Портирование Cucumber фреймворка для JVM. Лицензия: MIT , рейтинг github’а – 1047.
- JBehave BDD фреймворк, обладающий широкими возможностями по конфигурации. BDD является эволюцией подходов к разработке через тестирование (англ. test-driven development, TDD) и через приемочное тестирование (англ. acceptance-test driven design, ATDD), а также предназначен для того, чтобы сделать эти практики более доступными и интуитивно понятными в одинаковой степени новичкам и экспертам. Лицензия: BSD 3, рейтинг github’а – 208.
- Spock Spock это фреймворк тестирования и создания спецификаций для Java и Groovy приложений . Лицензия: Apache 2 , рейтинг github’а – 669.
- Google Firing range Google Firing Range это тестовый вебсервер для приложений-сканеров уязвимостей вебсайтов. Firing Range создает широкий спектр синтетических уязвимостей. Лицензия: Apache 2 , рейтинг github’а – 650.
- Fitnesse FitNesse это система тестирования, вебсервер и вики. Лицензия: CPL-1.0, рейтинг github’а – 618.
- Sikuli Sikuli служит для написания скриптов, служащих для автоматизации работы со всем что вы ведите на экране.. Лицензия: MIT , рейтинг github’а – 609.
- JavaHamcrest Hamcrest это фреймворк для создания условий и правил в программных тестах, написанных на Java, он позволяет создать сложные выражения для этих условий (assertion matcher), которые потом могут использовать в системах unit тестирования, таких как JUnit или jMock. . Лицензия: BSD 3, рейтинг github’а – 561.
- Wiremock Инструментарий для создания mock’ов (заглушек для тестирования) HTTP сервисов. Лицензия: Apache 2 , рейтинг github’а – 508.
- Testng TestNG фреймворк для тестирования. Лицензия: Apache 2 , рейтинг github’а – 477.
- Galenframework Galen Galen Framework это мощный фреймворк для автоматического тестирования дизайна и функционала вебсайтов. Использует Selenium для работы с браузером и автоматического тестирования вебсайтов. Лицензия: Apache 2 , рейтинг github’а – 449.
- AssertJ AssertJ это библиотека предоставляющая мощный механизм работы с условиями (assertion) для тестовых фреймворков. Лицензия: Apache 2 , рейтинг github’а – 423.
- Google truth Фреймворк для задания ограничений и утверждений (Assertion/Proposition) в Unit тестах (версия ещё очень альфа, может быть полностью изменена ) . Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache JMeter – Функциональное тестирование и замеры производительности. Лицензия: Apache 2.
- Arquillian – Интеграционная и функциональная платформа тестирования Java EE контейнеров, Лицензия: Apache 2.
- Awaitility – DSL для синхронизации ассинхроных операций, Лицензия: Apache 2.
- Citrus – Фреймворк интеграционного тестирования, которой фокусируется на тестировании клиент-серверного обмена сообщениями, Лицензия: Apache 2.
- Gatling – Содержит инструменты тестирования разработанные для легкого использования, легкого сопровождения и высокой производительности, Лицензия: MIT.
- GreenMail – In-memory email сервер для интеграционного тестирования, поддерживает SMTP, POP3 и IMAP включая SSL, Лицензия: MIT.
- JGiven – Удобный для разработчиков BDD фреймворк тестирования совместимый с JUnit и TestNG, Лицензия: MIT.
- JMockit – Создает мock’и статических и финальных методов, а так же многое другое, Лицензия: MIT.
- JUnitParams – Облегчает создание читабельных и легких в поддержке параметризованных тестов, Лицензия: Apache 2.
- Moco – Создание лаконичных вебсервисов для тестирования (stubs и mocks), награжден Duke’s Choice Award 2013, Лицензия: MIT.
- PIT – Быстрый мутационный фреймворк тестирования с возможностью обнаружения ошибок в написании существующих JUnit или TestNG тестах, Лицензия: Creative Commons License.
- PowerMock – Позволяет создание mock’ов статических методов, финальных классов и методов, приватных классов и удаление статических инициализаторов, Лицензия: Apache 2.
- REST Assured – Java DSL для легкого тестирования REST/HTTP сервисов, Лицензия: Apache 2.
- Selenide – Краткое API над Selenium, позволяющее писать стабильные и читабельные UI тесты, Лицензия: MIT.
- Unitils – Модульная библиотека тестирования для unit и интеграционного тестирования, Лицензия: Apache 2.
- SeLion – SeLion это инструмент автоматического тестирования от paypal, построенный на основе TestNG и Selenium, может использоваться для тестирования веб и мобильных приложений. github’s star – 63. Лицензия: Apache 2.
2. Code Coverage
Фреймворки и инструменты для получения набора code coverage метрик для тестов. К оглавлению
- JaCoCo – Фреймворк, который позволяет собирать метрики покрытия кода тестами, используя как offline, так и runtime байткод инструменты, используется в EclEmma, плагине Eclipse для определения степени покрытия тестами, Лицензия: Eclipse Public License v1.0, Apache 2, BSD.
- Clover – Проприетарный инструмент для определения степени покрытия кода тестами от Atlassian, который основан на анализе исходного кода вместо анализа байткода, Лицензия: платная, проприетарная
- Cobertura – Использует автономный (или статическый) инструментарий анализа байткода и class loading’a для получения метрик покрытия кода тестами, Лицензия: GNU 2.
- JCov – Набор инструментов для анализа покрытия кода тестами, который используется при разработке OpenJDK проекта, Лицензия: GNU 2.
3. Continuous Integration
Набор инструментов, поддерживающих непрерывную сборку, тестирование и релизы приложений. К оглавлению
- Bamboo – Atlassian’s решение с хорошей интеграцией с другими продуктами этой компании. Можно использовать либо подав заявку на бесплатную лицензию или просто купив его,
- CircleCI – Cервис хостинга CI с бесплатным тестовым сроком,
- Codeship – Cервис хостинга CI с ограниченными бесплатными планами.
- fabric8 – Интеграционная платформа для контайнеров, Лицензия: Apache 2.
- Go – Открытое решение от ThoughtWork. Есть платная поддержка, Лицензия: Apache 2.
- Jenkins – Предоставляет серверное решение для развертывания сервисов, Лицензия: MIT.
- TeamCity – JetBrain’s CI решение с бесплатной версией для open-source продуктов, Лицензия: Проприетарная, платная
- Travis – Cервис хостинга CI, который часто использует в открытых продуктах, Лицензия: ?
- Hudson – Сервер непрерывной реализации для активной разработки, Лицензия: Eclipse Public License v1.0.
- Apache Continuum Сервер непрерывной реализации от Apache. Лицензия: Apache 2.
4. Formal Verification
Инструменты для формальной верефикации: proof assistants, model checking, symbolic execution и т.п. К оглавлению
- CATG – Concolic unit тест движок. Автоматически генерит unit тесты, используя ряд формальных методов, Лицензия: BSD 2, Лицензия: BSD 2.
- Checker Framework – Легко настраиваемая плагинами система типов, включет nullness типы, physical units, неизменяемые типы и прочее, Лицензия: GNU 2.
- Daikon – Daikon обнаруживает различные программные invariants и может генерировать JML спецификации, основанные на этих invariats, Лицензия: GNU.
- Java Modeling Language (JML) – Интерфейс поведенческих спецификаций, который может исопльзоваться для определения желаемого поведения программных модулей. Он комбинирует подход контрактного дизайна приложения от Eiffel и подход спецификаций модели, основанных на семействе Larch языков описания спецификаций интерфейсов, с некоторыми элементами от refinement calculus. Используется в некоторых других системах верефикации, Лицензия: GNU 2.
- Java Path Finder (JPF) – JVM инструмент formal верефикации, который содержит проверки модели и прочее. Созданн НАСА., Лицензия: NASA OPEN SOURCE AGREEMENT VERSION 1.3
- jCUTE – Concolic unit тест движок. Автоматически генерит unit тесты. Concolic выполнение комбинирует случайное concrete execution с symbolic execution и automatic constraint solving, Лицензия: Проприетарная, бесплатная для целей обучения и т.п.
- JMLOK 2.0 – Обнаруживает несоответствий между кодом и спецификацией JML с помощью генерации случайных тестов с обратной связью и предлагает возможные причины, вызывающие обнаруженные несоотвествия, Лицензия: GNU 3.
- KeY – KeY System это инструмент формальной верефикации основными целями которого являются интеграция дизайна, имплементации, формальной спецификации и формальная верефикация ООП настолько легко, насколько это возможно. Использует JML для спецификаций и symbolic execution для верефикации, Лицензия: GNU.
- OpenJML – Преобразует JML спецификации в SMT-LIB формат и находит проблемы и передает описание проблем к backend решателю, Лицензия: GNU 2 и Eclipse Public License v1.0.
V. Инструменты для упрощения разработки
1. IDE
К оглавлению
- JetBrains Intellij Сommunity IntelliJ IDEA Community Edition — одна из лучший IDE для Java . http://www.jetbrains.com/idea/ Лицензия: Apache 2 , рейтинг github’а – 2068.
- JetBrains Ideavim Плагин, эмулирующий Vim для IDE, основанных на IntelliJ платформе. Лицензия: GNU 2, рейтинг github’а – 1199.
- Rstudio RStudio это IDE для языка R. Лицензия: GNU AGPLv3, рейтинг github’а – 1048.
- Vrapper Плагин по добавлению Vim-подобного редактора в Eclipse. Лицензия: GNU 3.0, рейтинг github’а – 669.
- Eclipse themes Jeeeyul’s Eclipse Themes (прошлое имя Eclipse Chrome Theme) это возможность настроить каждую деталь Eclipse’а. Лицензия: Eclipse Public 1.0, рейтинг github’а – 623.
- Eclipse color theme Eclipse Color Theme позволяет легко импортировать и удобно менять цветовые темы без побочных эфектов. Лицензия: Eclipse Public 1.0, рейтинг github’а – 614.
- Eclim Добавление в редактор Vim возможностей Eclipse IDE. Лицензия: GNU 3, рейтинг github’а – 590.
- JetBrains MPS JetBrains MPS (Meta programming System) служит для быстрой разработки DSL (Domain Specific Language) для любого окружения и с возможностью скомпилировать DSL в множество языков, таких как Java, C, XML и другие. Лицензия: Apache 2 , рейтинг github’а – 525.
- Idea markdown Поддержка языка разметки Markdown в IntelliJ IDEA.. Лицензия: Apache 2 , рейтинг github’а – 405.
- Eclipse – Популярная открытая IDE поддерживающая большое количество плагинов и языков программирования, Лицензия: Eclipse Public License v1.0.
- NetBeans – IDE поддерживает большое количество различных возможностей для разработки Java SE и EE приложений от работы с базой данных до работы с HTML5, Лицензия: GNU 2 или CDDL 1.0
2. Инструменты и библиотеки для сборки, конфигурирования и развертывания Java приложений
К оглавлению
Build
Инструменты для сборки проекта (build) и работы с зависимостями(dependencies) приложения.
- Apache Maven – Система декларативной сборки и управления зависимостями, которая упрощает конфигурирование приложения. Это может быть предпочтительнее Apache Ant, используещего более процедурный подход, который сложнее поддерживать в большинстве случаев. Лицензия: Apache 2 , рейтинг github’а – 614.
- Google Bazel – Инструмент для сборки от Google, который позволяет собирать код быстро и надежно. Корректная, воспроизводимая и быстрая билд система для любых ситуаций Лицензия: Apache 2 , рейтинг github’а – 2809.
- Gradle – Система инкрементальной сборки, использующая для конфигурирования Groovy вместо XML. Хорошо совместима с Maven конфигурациями. Лицензия: Apache 2 , рейтинг github’а – 2465.
- Apache Ant – Инструмент для сборки проиложений, использующий XML для конфигурационных файлов, раньше был очень популярен, сейчас используется довольно редко. Подпроекты: Apache AntUnit – система тестирования файлов ant’a, Apache Compress Ant Library – дополнительные форматы архивов и сжатия, Apache Ivy – работа с зависимостями, Apache IvyDE – плагин Ivy для Eclipse. Лицензия: Apache 2.
- Facebook Buck – система сборки, упрощающая создание небольших, повторно используемых модулей. Лицензия: Apache 2 , рейтинг github’а – 1449.
- Archiva Apache The Build Artifact Repository Manager. Apache Archiva – расширяемый репозиторий артефактов сборки, идеально совместим с такими средствами сборки как Maven, Continuum и ANT. Лицензия: Apache 2.
Configuration
Библиотеки, управлящие конфигурированием К оглавлению
- config – Конфигурационная библиотека для JVM языков. Лицензия: Apache 2 , рейтинг github’а – 614.
- owner – Уменьшение бесмысленного типового кода для работы с properties, Лицензия: BSD 3.
- Netflix Archaius – библиотека, реализующая API для управления конфигурациями, используется Netflix. Лицензия: Apache 2 , рейтинг github’а – 614.
- LightAdmin – Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
- Apache Yetus Коллекция библиотек и инструменов для управления contribution и release процессами. Лицензия: Apache 2.
Distribution
Инструменты для работы с развертыванием (distribution) приложений в нативные форматы. К оглавлению
- Bintray – Контроль версий для бинарных файлов, так же может использовать вместе с Maven или Gradle и имеет свободный план для открытого ПО, а так же ряд различных бизнес планов, Лицензия: проприетарная платная, есть бесплатная версия для открытых продуктов
- Capsule – это система сборки приложения в один выполняемый JAR файл со всеми артефактами, ресурсами, нативными библиотеками и т.п. Простой и мощный инструмент для packaging и deployment. Толстый JAR на стероидах или “Docker для Java”, который поддерживает JVM-оптимизированные контейнеры, рейтинг github’а – 576. Лицензия: Eclipse Public License v1.0.
- Central Repository – Огромный бинарный репозеторий компонентов, который доступен как свободный сервис для проектов с открытым ПО. Используется Apache Maven и доступно для всех остальных инструментов сборки, Лицензия: проприетарная
- IzPack – Широко используемый набор инструментов для многоплатформенного развертывания приложений (deployments). Лицензия: Apache 2 , рейтинг github’а – 614.
- JitPack – Простой в использовании репозиторий пакетов для GitHub. Собирает Maven / Gradle проекты и публикует их в готовых к использованию пакетах. Лицензия: Apache 2 , рейтинг github’а – 614.
- Launch4j – Преобразует JARs файлы в легковесные и нативные исполнянмые файлы Windows , Лицензия: BSD 3 и MIT.
- Nexus – Усправления бинарными файлами с прокси и кэшированием, Лицензия: проприетарная платная
- packr – Преобразование JARs, assets и JVM в нативные приложения Windows, Linux и Mac OS X, Лицензия: Apache 2.
- Spotify Helios это Docker orchestration платформа для развертывания и управления контейнерами с помощью HTTP API или командной строки. Лицензия: Apache 2 , рейтинг github’а – 952.
3. Инструменты для оптимизации производительности
Библиотеки для оптимизации и решения проблем с производительностью К оглавлению
- Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 4168.
- Dropwizard Metrics – библиотека для замера различных метрик в Java приложении для простого понимания что и как код делает во время продакшена. . Лицензия: Apache 2 , рейтинг github’а – 3188.
- GCViewer Форк Tagtraum GCViewer — небольшой инструмент для подробной визуализации GC (garbage collector) логов (включая G1 collector). Лицензия: GNU Lesser 2.1, рейтинг github’а – 990.
- AdoptOpenJDK Jitwatch Анализатор логов Java HotSpot JIT компилятора, показывающий результаты используя JavaFX интерфейс. Лицензия: BSD 2, рейтинг github’а – 547.
- Naver Pinpoint это APM (Application Performance Management) инструмент мониторинга производительности крупномасштабных распределенных систем, написанных на Java. Создан на основе Google’s Dapper paper.. Лицензия: Apache 2 , рейтинг github’а – 486.
- jHiccup – Логирование и запись проблем с производительностью и потерь скорости у JVM, Лицензия: BSD 2.
- JMH – Microbenchmarking инструмент для JVM, Лицензия: GNU 2.
- LatencyUtils – Утилиты для измерения времени отклика приложения и составления отчетов, Лицензия: BSD 2.
- VisualVM – Визуальный интерфейс, показывающий детальную информацию о запущенных приложениях.Лицензия: GNU 2 with the Classpath Exception.
- JProfiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов
- YourKit Java Profiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов, спец.планы для научных и академических целей
- XRebel – Платный профайлер. Лицензия: Проприетарная платная
4. Анализ исходного кода
К оглавлению
- SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github’а – 655.
- Google Error prone – обнаружение типовых ошибок в Java коде. Лицензия: Apache 2 , рейтинг github’а – 590.
- OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c.. Лицензия: CDDL 1.0, рейтинг github’а – 570.
- Checkstyle – Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
- FindBugs – Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
- jQAssistant – Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
- PMD – Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.
5. Monitoring
Инструменты для мониторинга приложений в production. К оглавлению
- AppDynamics – Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- JavaMelody – Мониторинг производительности и профайлинг, Лицензия: Apache 2.
- jmxtrans – Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
- Kamon – Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
- New Relic – Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
- SPM – Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- Takipi – Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
Everything that helps with the creation of PDF files. К оглавлению
- Apache FOP – Создание PDF из XSL-FO, Лицензия: Apache 2.
- Apache PDFBox – Набор инструментов для создания и изменения PDF, Лицензия: Apache 2.
- DynamicReports – Улучшение JasperReports, Лицензия: GNU Lesser 3.
- flyingsaucer – lying Saucer это Java библиотека для использования XML или XHTML с использованием CSS 2.1 для генерации PDF, изображений или Swing panels. Лицензия: GNU Lesser 2.1.
- iText – Создание PDF файлов из программы, но требует лицензию для комерчиского использования, Лицензия: AGPL или платная лицензия для комерческого использования. ИЛИ
- JasperReports – Комплексный движок отчетов, Лицензия: GNU Lesser.
15. Работа с нативным API разных ОС](#15-native)
For working with platform-specific native libraries. К оглавлению
- Java Native Access (JNA) Java Native Access — система доступа к нативному API. Так же предоставляет интерфейсы к основным системых библиотекам. Лицензия: GNU Lesser 2.1 или Apache 2. , рейтинг github’а – 1750.
- JNR – Работа с нативными библиотеками без использвания JNI. Так же предоставляет интерфейсы к основным системых библиотекамs. Те же задачи что у JNA, но работает быстрее, и служит основой для разрабатываемого Project Panama, Лицензия: Apache 2.
16. XML и SOAP
- Xalan Xalan-J это XSLT processor, написанный на Java. Лицензия: Apache 2.
- Xerces Xerces-J это validating XML парсер, написанный на Java. Лицензия: Apache 2.
- XML Graphics Конвертация XML в графическое представление. Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- VXQuery Apache VXQuery реализует параллельный XML Query processor. Лицензия: Apache 2.
- Apache Axis Веб контейнер который помогает создавать, развертывать и запускать вебсервисы. Axis2 это Web Services / SOAP / WSDL движок. Лицензия: Apache 2.
17. Интеграция с сервисами геопозиционирования
Библиотеки для работы с сервисами геопозиционирования.
- Apache SIS – Библиотека для разработки приложений геопозиционирования. Лицензия: Apache 2.
- Geo – GeoHash утилиты для Java. Лицензия: Apache 2.
- Geotoolkit.org – Библиотека для разработки приложений геопозиционирования. Работает на основе Apache SIS проекта. Лицензия: GNU Lesser 2.1.
- GeoTools – Библиотека предоставляющая инструменты для получения данных геопозиционирования. Лицензия: GNU Lesser 2.1.
- H2GIS – Геопозиционированое расширение для базы данных H2. Лицензия: GPL 3.
- Jgeohash – Библиотека, помогающая Java разработчикам в использовании GeoHash алгоритмов. Лицензия: Apache 2.
- JTS Topology Suite – API для 2D геопозиционирования. Лицензия: GNU Lesser 3.
- Mapsforge – Продукт для геопозиционирования на карте, основанной на OpenStreetMap данных. Лицензия: GNU Lesser 3.
- Spatial4j – Универсальная библиотека геопозиционирования. Лицензия: Apache 2.
IV. Тестирование
1. Тестирование
К оглавлению
- Junit Простой и популярный фреймворк для unit тестирования . Лицензия: Eclipse Public 1.0 , рейтинг github’а – 3662.
- Mockito Mocking фреймворк для unit тестов, написанных на Java. Лицензия: MIT , рейтинг github’а – 1307.
- Selenium Фреймворк для автоматического тестирования в браузере . Лицензия: Apache 2 , рейтинг github’а – 1305.
- Cucumber jvm Портирование Cucumber фреймворка для JVM. Лицензия: MIT , рейтинг github’а – 1047.
- JBehave BDD фреймворк, обладающий широкими возможностями по конфигурации. BDD является эволюцией подходов к разработке через тестирование (англ. test-driven development, TDD) и через приемочное тестирование (англ. acceptance-test driven design, ATDD), а также предназначен для того, чтобы сделать эти практики более доступными и интуитивно понятными в одинаковой степени новичкам и экспертам. Лицензия: BSD 3, рейтинг github’а – 208.
- Spock Spock это фреймворк тестирования и создания спецификаций для Java и Groovy приложений . Лицензия: Apache 2 , рейтинг github’а – 669.
- Google Firing range Google Firing Range это тестовый вебсервер для приложений-сканеров уязвимостей вебсайтов. Firing Range создает широкий спектр синтетических уязвимостей. Лицензия: Apache 2 , рейтинг github’а – 650.
- Fitnesse FitNesse это система тестирования, вебсервер и вики. Лицензия: CPL-1.0, рейтинг github’а – 618.
- Sikuli Sikuli служит для написания скриптов, служащих для автоматизации работы со всем что вы ведите на экране.. Лицензия: MIT , рейтинг github’а – 609.
- JavaHamcrest Hamcrest это фреймворк для создания условий и правил в программных тестах, написанных на Java, он позволяет создать сложные выражения для этих условий (assertion matcher), которые потом могут использовать в системах unit тестирования, таких как JUnit или jMock. . Лицензия: BSD 3, рейтинг github’а – 561.
- Wiremock Инструментарий для создания mock’ов (заглушек для тестирования) HTTP сервисов. Лицензия: Apache 2 , рейтинг github’а – 508.
- Testng TestNG фреймворк для тестирования. Лицензия: Apache 2 , рейтинг github’а – 477.
- Galenframework Galen Galen Framework это мощный фреймворк для автоматического тестирования дизайна и функционала вебсайтов. Использует Selenium для работы с браузером и автоматического тестирования вебсайтов. Лицензия: Apache 2 , рейтинг github’а – 449.
- AssertJ AssertJ это библиотека предоставляющая мощный механизм работы с условиями (assertion) для тестовых фреймворков. Лицензия: Apache 2 , рейтинг github’а – 423.
- Google truth Фреймворк для задания ограничений и утверждений (Assertion/Proposition) в Unit тестах (версия ещё очень альфа, может быть полностью изменена ) . Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache JMeter – Функциональное тестирование и замеры производительности. Лицензия: Apache 2.
- Arquillian – Интеграционная и функциональная платформа тестирования Java EE контейнеров, Лицензия: Apache 2.
- Awaitility – DSL для синхронизации ассинхроных операций, Лицензия: Apache 2.
- Citrus – Фреймворк интеграционного тестирования, которой фокусируется на тестировании клиент-серверного обмена сообщениями, Лицензия: Apache 2.
- Gatling – Содержит инструменты тестирования разработанные для легкого использования, легкого сопровождения и высокой производительности, Лицензия: MIT.
- GreenMail – In-memory email сервер для интеграционного тестирования, поддерживает SMTP, POP3 и IMAP включая SSL, Лицензия: MIT.
- JGiven – Удобный для разработчиков BDD фреймворк тестирования совместимый с JUnit и TestNG, Лицензия: MIT.
- JMockit – Создает мock’и статических и финальных методов, а так же многое другое, Лицензия: MIT.
- JUnitParams – Облегчает создание читабельных и легких в поддержке параметризованных тестов, Лицензия: Apache 2.
- Moco – Создание лаконичных вебсервисов для тестирования (stubs и mocks), награжден Duke’s Choice Award 2013, Лицензия: MIT.
- PIT – Быстрый мутационный фреймворк тестирования с возможностью обнаружения ошибок в написании существующих JUnit или TestNG тестах, Лицензия: Creative Commons License.
- PowerMock – Позволяет создание mock’ов статических методов, финальных классов и методов, приватных классов и удаление статических инициализаторов, Лицензия: Apache 2.
- REST Assured – Java DSL для легкого тестирования REST/HTTP сервисов, Лицензия: Apache 2.
- Selenide – Краткое API над Selenium, позволяющее писать стабильные и читабельные UI тесты, Лицензия: MIT.
- Unitils – Модульная библиотека тестирования для unit и интеграционного тестирования, Лицензия: Apache 2.
- SeLion – SeLion это инструмент автоматического тестирования от paypal, построенный на основе TestNG и Selenium, может использоваться для тестирования веб и мобильных приложений. github’s star – 63. Лицензия: Apache 2.
2. Code Coverage
Фреймворки и инструменты для получения набора code coverage метрик для тестов. К оглавлению
- JaCoCo – Фреймворк, который позволяет собирать метрики покрытия кода тестами, используя как offline, так и runtime байткод инструменты, используется в EclEmma, плагине Eclipse для определения степени покрытия тестами, Лицензия: Eclipse Public License v1.0, Apache 2, BSD.
- Clover – Проприетарный инструмент для определения степени покрытия кода тестами от Atlassian, который основан на анализе исходного кода вместо анализа байткода, Лицензия: платная, проприетарная
- Cobertura – Использует автономный (или статическый) инструментарий анализа байткода и class loading’a для получения метрик покрытия кода тестами, Лицензия: GNU 2.
- JCov – Набор инструментов для анализа покрытия кода тестами, который используется при разработке OpenJDK проекта, Лицензия: GNU 2.
3. Continuous Integration
Набор инструментов, поддерживающих непрерывную сборку, тестирование и релизы приложений. К оглавлению
- Bamboo – Atlassian’s решение с хорошей интеграцией с другими продуктами этой компании. Можно использовать либо подав заявку на бесплатную лицензию или просто купив его,
- CircleCI – Cервис хостинга CI с бесплатным тестовым сроком,
- Codeship – Cервис хостинга CI с ограниченными бесплатными планами.
- fabric8 – Интеграционная платформа для контайнеров, Лицензия: Apache 2.
- Go – Открытое решение от ThoughtWork. Есть платная поддержка, Лицензия: Apache 2.
- Jenkins – Предоставляет серверное решение для развертывания сервисов, Лицензия: MIT.
- TeamCity – JetBrain’s CI решение с бесплатной версией для open-source продуктов, Лицензия: Проприетарная, платная
- Travis – Cервис хостинга CI, который часто использует в открытых продуктах, Лицензия: ?
- Hudson – Сервер непрерывной реализации для активной разработки, Лицензия: Eclipse Public License v1.0.
- Apache Continuum Сервер непрерывной реализации от Apache. Лицензия: Apache 2.
4. Formal Verification
Инструменты для формальной верефикации: proof assistants, model checking, symbolic execution и т.п. К оглавлению
- CATG – Concolic unit тест движок. Автоматически генерит unit тесты, используя ряд формальных методов, Лицензия: BSD 2, Лицензия: BSD 2.
- Checker Framework – Легко настраиваемая плагинами система типов, включет nullness типы, physical units, неизменяемые типы и прочее, Лицензия: GNU 2.
- Daikon – Daikon обнаруживает различные программные invariants и может генерировать JML спецификации, основанные на этих invariats, Лицензия: GNU.
- Java Modeling Language (JML) – Интерфейс поведенческих спецификаций, который может исопльзоваться для определения желаемого поведения программных модулей. Он комбинирует подход контрактного дизайна приложения от Eiffel и подход спецификаций модели, основанных на семействе Larch языков описания спецификаций интерфейсов, с некоторыми элементами от refinement calculus. Используется в некоторых других системах верефикации, Лицензия: GNU 2.
- Java Path Finder (JPF) – JVM инструмент formal верефикации, который содержит проверки модели и прочее. Созданн НАСА., Лицензия: NASA OPEN SOURCE AGREEMENT VERSION 1.3
- jCUTE – Concolic unit тест движок. Автоматически генерит unit тесты. Concolic выполнение комбинирует случайное concrete execution с symbolic execution и automatic constraint solving, Лицензия: Проприетарная, бесплатная для целей обучения и т.п.
- JMLOK 2.0 – Обнаруживает несоответствий между кодом и спецификацией JML с помощью генерации случайных тестов с обратной связью и предлагает возможные причины, вызывающие обнаруженные несоотвествия, Лицензия: GNU 3.
- KeY – KeY System это инструмент формальной верефикации основными целями которого являются интеграция дизайна, имплементации, формальной спецификации и формальная верефикация ООП настолько легко, насколько это возможно. Использует JML для спецификаций и symbolic execution для верефикации, Лицензия: GNU.
- OpenJML – Преобразует JML спецификации в SMT-LIB формат и находит проблемы и передает описание проблем к backend решателю, Лицензия: GNU 2 и Eclipse Public License v1.0.
V. Инструменты для упрощения разработки
1. IDE
К оглавлению
- JetBrains Intellij Сommunity IntelliJ IDEA Community Edition — одна из лучший IDE для Java . http://www.jetbrains.com/idea/ Лицензия: Apache 2 , рейтинг github’а – 2068.
- JetBrains Ideavim Плагин, эмулирующий Vim для IDE, основанных на IntelliJ платформе. Лицензия: GNU 2, рейтинг github’а – 1199.
- Rstudio RStudio это IDE для языка R. Лицензия: GNU AGPLv3, рейтинг github’а – 1048.
- Vrapper Плагин по добавлению Vim-подобного редактора в Eclipse. Лицензия: GNU 3.0, рейтинг github’а – 669.
- Eclipse themes Jeeeyul’s Eclipse Themes (прошлое имя Eclipse Chrome Theme) это возможность настроить каждую деталь Eclipse’а. Лицензия: Eclipse Public 1.0, рейтинг github’а – 623.
- Eclipse color theme Eclipse Color Theme позволяет легко импортировать и удобно менять цветовые темы без побочных эфектов. Лицензия: Eclipse Public 1.0, рейтинг github’а – 614.
- Eclim Добавление в редактор Vim возможностей Eclipse IDE. Лицензия: GNU 3, рейтинг github’а – 590.
- JetBrains MPS JetBrains MPS (Meta programming System) служит для быстрой разработки DSL (Domain Specific Language) для любого окружения и с возможностью скомпилировать DSL в множество языков, таких как Java, C, XML и другие. Лицензия: Apache 2 , рейтинг github’а – 525.
- Idea markdown Поддержка языка разметки Markdown в IntelliJ IDEA.. Лицензия: Apache 2 , рейтинг github’а – 405.
- Eclipse – Популярная открытая IDE поддерживающая большое количество плагинов и языков программирования, Лицензия: Eclipse Public License v1.0.
- NetBeans – IDE поддерживает большое количество различных возможностей для разработки Java SE и EE приложений от работы с базой данных до работы с HTML5, Лицензия: GNU 2 или CDDL 1.0
2. Инструменты и библиотеки для сборки, конфигурирования и развертывания Java приложений
К оглавлению
Build
Инструменты для сборки проекта (build) и работы с зависимостями(dependencies) приложения.
- Apache Maven – Система декларативной сборки и управления зависимостями, которая упрощает конфигурирование приложения. Это может быть предпочтительнее Apache Ant, используещего более процедурный подход, который сложнее поддерживать в большинстве случаев. Лицензия: Apache 2 , рейтинг github’а – 614.
- Google Bazel – Инструмент для сборки от Google, который позволяет собирать код быстро и надежно. Корректная, воспроизводимая и быстрая билд система для любых ситуаций Лицензия: Apache 2 , рейтинг github’а – 2809.
- Gradle – Система инкрементальной сборки, использующая для конфигурирования Groovy вместо XML. Хорошо совместима с Maven конфигурациями. Лицензия: Apache 2 , рейтинг github’а – 2465.
- Apache Ant – Инструмент для сборки проиложений, использующий XML для конфигурационных файлов, раньше был очень популярен, сейчас используется довольно редко. Подпроекты: Apache AntUnit – система тестирования файлов ant’a, Apache Compress Ant Library – дополнительные форматы архивов и сжатия, Apache Ivy – работа с зависимостями, Apache IvyDE – плагин Ivy для Eclipse. Лицензия: Apache 2.
- Facebook Buck – система сборки, упрощающая создание небольших, повторно используемых модулей. Лицензия: Apache 2 , рейтинг github’а – 1449.
- Archiva Apache The Build Artifact Repository Manager. Apache Archiva – расширяемый репозиторий артефактов сборки, идеально совместим с такими средствами сборки как Maven, Continuum и ANT. Лицензия: Apache 2.
Configuration
Библиотеки, управлящие конфигурированием К оглавлению
- config – Конфигурационная библиотека для JVM языков. Лицензия: Apache 2 , рейтинг github’а – 614.
- owner – Уменьшение бесмысленного типового кода для работы с properties, Лицензия: BSD 3.
- Netflix Archaius – библиотека, реализующая API для управления конфигурациями, используется Netflix. Лицензия: Apache 2 , рейтинг github’а – 614.
- LightAdmin – Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
- Apache Yetus Коллекция библиотек и инструменов для управления contribution и release процессами. Лицензия: Apache 2.
Distribution
Инструменты для работы с развертыванием (distribution) приложений в нативные форматы. К оглавлению
- Bintray – Контроль версий для бинарных файлов, так же может использовать вместе с Maven или Gradle и имеет свободный план для открытого ПО, а так же ряд различных бизнес планов, Лицензия: проприетарная платная, есть бесплатная версия для открытых продуктов
- Capsule – это система сборки приложения в один выполняемый JAR файл со всеми артефактами, ресурсами, нативными библиотеками и т.п. Простой и мощный инструмент для packaging и deployment. Толстый JAR на стероидах или “Docker для Java”, который поддерживает JVM-оптимизированные контейнеры, рейтинг github’а – 576. Лицензия: Eclipse Public License v1.0.
- Central Repository – Огромный бинарный репозеторий компонентов, который доступен как свободный сервис для проектов с открытым ПО. Используется Apache Maven и доступно для всех остальных инструментов сборки, Лицензия: проприетарная
- IzPack – Широко используемый набор инструментов для многоплатформенного развертывания приложений (deployments). Лицензия: Apache 2 , рейтинг github’а – 614.
- JitPack – Простой в использовании репозиторий пакетов для GitHub. Собирает Maven / Gradle проекты и публикует их в готовых к использованию пакетах. Лицензия: Apache 2 , рейтинг github’а – 614.
- Launch4j – Преобразует JARs файлы в легковесные и нативные исполнянмые файлы Windows , Лицензия: BSD 3 и MIT.
- Nexus – Усправления бинарными файлами с прокси и кэшированием, Лицензия: проприетарная платная
- packr – Преобразование JARs, assets и JVM в нативные приложения Windows, Linux и Mac OS X, Лицензия: Apache 2.
- Spotify Helios это Docker orchestration платформа для развертывания и управления контейнерами с помощью HTTP API или командной строки. Лицензия: Apache 2 , рейтинг github’а – 952.
3. Инструменты для оптимизации производительности
Библиотеки для оптимизации и решения проблем с производительностью К оглавлению
- Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 4168.
- Dropwizard Metrics – библиотека для замера различных метрик в Java приложении для простого понимания что и как код делает во время продакшена. . Лицензия: Apache 2 , рейтинг github’а – 3188.
- GCViewer Форк Tagtraum GCViewer — небольшой инструмент для подробной визуализации GC (garbage collector) логов (включая G1 collector). Лицензия: GNU Lesser 2.1, рейтинг github’а – 990.
- AdoptOpenJDK Jitwatch Анализатор логов Java HotSpot JIT компилятора, показывающий результаты используя JavaFX интерфейс. Лицензия: BSD 2, рейтинг github’а – 547.
- Naver Pinpoint это APM (Application Performance Management) инструмент мониторинга производительности крупномасштабных распределенных систем, написанных на Java. Создан на основе Google’s Dapper paper.. Лицензия: Apache 2 , рейтинг github’а – 486.
- jHiccup – Логирование и запись проблем с производительностью и потерь скорости у JVM, Лицензия: BSD 2.
- JMH – Microbenchmarking инструмент для JVM, Лицензия: GNU 2.
- LatencyUtils – Утилиты для измерения времени отклика приложения и составления отчетов, Лицензия: BSD 2.
- VisualVM – Визуальный интерфейс, показывающий детальную информацию о запущенных приложениях.Лицензия: GNU 2 with the Classpath Exception.
- JProfiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов
- YourKit Java Profiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов, спец.планы для научных и академических целей
- XRebel – Платный профайлер. Лицензия: Проприетарная платная
4. Анализ исходного кода
К оглавлению
- SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github’а – 655.
- Google Error prone – обнаружение типовых ошибок в Java коде. Лицензия: Apache 2 , рейтинг github’а – 590.
- OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c.. Лицензия: CDDL 1.0, рейтинг github’а – 570.
- Checkstyle – Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
- FindBugs – Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
- jQAssistant – Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
- PMD – Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.
5. Monitoring
Инструменты для мониторинга приложений в production. К оглавлению
- AppDynamics – Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- JavaMelody – Мониторинг производительности и профайлинг, Лицензия: Apache 2.
- jmxtrans – Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
- Kamon – Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
- New Relic – Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
- SPM – Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- Takipi – Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
- Xalan Xalan-J это XSLT processor, написанный на Java. Лицензия: Apache 2.
- Xerces Xerces-J это validating XML парсер, написанный на Java. Лицензия: Apache 2.
- XML Graphics Конвертация XML в графическое представление. Лицензия: Apache 2.
- Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
- VXQuery Apache VXQuery реализует параллельный XML Query processor. Лицензия: Apache 2.
- Apache Axis Веб контейнер который помогает создавать, развертывать и запускать вебсервисы. Axis2 это Web Services / SOAP / WSDL движок. Лицензия: Apache 2.
17. Интеграция с сервисами геопозиционирования
Библиотеки для работы с сервисами геопозиционирования.
- Apache SIS – Библиотека для разработки приложений геопозиционирования. Лицензия: Apache 2.
- Geo – GeoHash утилиты для Java. Лицензия: Apache 2.
- Geotoolkit.org – Библиотека для разработки приложений геопозиционирования. Работает на основе Apache SIS проекта. Лицензия: GNU Lesser 2.1.
- GeoTools – Библиотека предоставляющая инструменты для получения данных геопозиционирования. Лицензия: GNU Lesser 2.1.
- H2GIS – Геопозиционированое расширение для базы данных H2. Лицензия: GPL 3.
- Jgeohash – Библиотека, помогающая Java разработчикам в использовании GeoHash алгоритмов. Лицензия: Apache 2.
- JTS Topology Suite – API для 2D геопозиционирования. Лицензия: GNU Lesser 3.
- Mapsforge – Продукт для геопозиционирования на карте, основанной на OpenStreetMap данных. Лицензия: GNU Lesser 3.
- Spatial4j – Универсальная библиотека геопозиционирования. Лицензия: Apache 2.
IV. Тестирование
1. Тестирование
К оглавлению
- Junit Простой и популярный фреймворк для unit тестирования . Лицензия: Eclipse Public 1.0 , рейтинг github’а – 3662.
- Mockito Mocking фреймворк для unit тестов, написанных на Java. Лицензия: MIT , рейтинг github’а – 1307.
- Selenium Фреймворк для автоматического тестирования в браузере . Лицензия: Apache 2 , рейтинг github’а – 1305.
- Cucumber jvm Портирование Cucumber фреймворка для JVM. Лицензия: MIT , рейтинг github’а – 1047.
- JBehave BDD фреймворк, обладающий широкими возможностями по конфигурации. BDD является эволюцией подходов к разработке через тестирование (англ. test-driven development, TDD) и через приемочное тестирование (англ. acceptance-test driven design, ATDD), а также предназначен для того, чтобы сделать эти практики более доступными и интуитивно понятными в одинаковой степени новичкам и экспертам. Лицензия: BSD 3, рейтинг github’а – 208.
- Spock Spock это фреймворк тестирования и создания спецификаций для Java и Groovy приложений . Лицензия: Apache 2 , рейтинг github’а – 669.
- Google Firing range Google Firing Range это тестовый вебсервер для приложений-сканеров уязвимостей вебсайтов. Firing Range создает широкий спектр синтетических уязвимостей. Лицензия: Apache 2 , рейтинг github’а – 650.
- Fitnesse FitNesse это система тестирования, вебсервер и вики. Лицензия: CPL-1.0, рейтинг github’а – 618.
- Sikuli Sikuli служит для написания скриптов, служащих для автоматизации работы со всем что вы ведите на экране.. Лицензия: MIT , рейтинг github’а – 609.
- JavaHamcrest Hamcrest это фреймворк для создания условий и правил в программных тестах, написанных на Java, он позволяет создать сложные выражения для этих условий (assertion matcher), которые потом могут использовать в системах unit тестирования, таких как JUnit или jMock. . Лицензия: BSD 3, рейтинг github’а – 561.
- Wiremock Инструментарий для создания mock’ов (заглушек для тестирования) HTTP сервисов. Лицензия: Apache 2 , рейтинг github’а – 508.
- Testng TestNG фреймворк для тестирования. Лицензия: Apache 2 , рейтинг github’а – 477.
- Galenframework Galen Galen Framework это мощный фреймворк для автоматического тестирования дизайна и функционала вебсайтов. Использует Selenium для работы с браузером и автоматического тестирования вебсайтов. Лицензия: Apache 2 , рейтинг github’а – 449.
- AssertJ AssertJ это библиотека предоставляющая мощный механизм работы с условиями (assertion) для тестовых фреймворков. Лицензия: Apache 2 , рейтинг github’а – 423.
- Google truth Фреймворк для задания ограничений и утверждений (Assertion/Proposition) в Unit тестах (версия ещё очень альфа, может быть полностью изменена ) . Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache JMeter – Функциональное тестирование и замеры производительности. Лицензия: Apache 2.
- Arquillian – Интеграционная и функциональная платформа тестирования Java EE контейнеров, Лицензия: Apache 2.
- Awaitility – DSL для синхронизации ассинхроных операций, Лицензия: Apache 2.
- Citrus – Фреймворк интеграционного тестирования, которой фокусируется на тестировании клиент-серверного обмена сообщениями, Лицензия: Apache 2.
- Gatling – Содержит инструменты тестирования разработанные для легкого использования, легкого сопровождения и высокой производительности, Лицензия: MIT.
- GreenMail – In-memory email сервер для интеграционного тестирования, поддерживает SMTP, POP3 и IMAP включая SSL, Лицензия: MIT.
- JGiven – Удобный для разработчиков BDD фреймворк тестирования совместимый с JUnit и TestNG, Лицензия: MIT.
- JMockit – Создает мock’и статических и финальных методов, а так же многое другое, Лицензия: MIT.
- JUnitParams – Облегчает создание читабельных и легких в поддержке параметризованных тестов, Лицензия: Apache 2.
- Moco – Создание лаконичных вебсервисов для тестирования (stubs и mocks), награжден Duke’s Choice Award 2013, Лицензия: MIT.
- PIT – Быстрый мутационный фреймворк тестирования с возможностью обнаружения ошибок в написании существующих JUnit или TestNG тестах, Лицензия: Creative Commons License.
- PowerMock – Позволяет создание mock’ов статических методов, финальных классов и методов, приватных классов и удаление статических инициализаторов, Лицензия: Apache 2.
- REST Assured – Java DSL для легкого тестирования REST/HTTP сервисов, Лицензия: Apache 2.
- Selenide – Краткое API над Selenium, позволяющее писать стабильные и читабельные UI тесты, Лицензия: MIT.
- Unitils – Модульная библиотека тестирования для unit и интеграционного тестирования, Лицензия: Apache 2.
- SeLion – SeLion это инструмент автоматического тестирования от paypal, построенный на основе TestNG и Selenium, может использоваться для тестирования веб и мобильных приложений. github’s star – 63. Лицензия: Apache 2.
2. Code Coverage
Фреймворки и инструменты для получения набора code coverage метрик для тестов. К оглавлению
- JaCoCo – Фреймворк, который позволяет собирать метрики покрытия кода тестами, используя как offline, так и runtime байткод инструменты, используется в EclEmma, плагине Eclipse для определения степени покрытия тестами, Лицензия: Eclipse Public License v1.0, Apache 2, BSD.
- Clover – Проприетарный инструмент для определения степени покрытия кода тестами от Atlassian, который основан на анализе исходного кода вместо анализа байткода, Лицензия: платная, проприетарная
- Cobertura – Использует автономный (или статическый) инструментарий анализа байткода и class loading’a для получения метрик покрытия кода тестами, Лицензия: GNU 2.
- JCov – Набор инструментов для анализа покрытия кода тестами, который используется при разработке OpenJDK проекта, Лицензия: GNU 2.
3. Continuous Integration
Набор инструментов, поддерживающих непрерывную сборку, тестирование и релизы приложений. К оглавлению
- Bamboo – Atlassian’s решение с хорошей интеграцией с другими продуктами этой компании. Можно использовать либо подав заявку на бесплатную лицензию или просто купив его,
- CircleCI – Cервис хостинга CI с бесплатным тестовым сроком,
- Codeship – Cервис хостинга CI с ограниченными бесплатными планами.
- fabric8 – Интеграционная платформа для контайнеров, Лицензия: Apache 2.
- Go – Открытое решение от ThoughtWork. Есть платная поддержка, Лицензия: Apache 2.
- Jenkins – Предоставляет серверное решение для развертывания сервисов, Лицензия: MIT.
- TeamCity – JetBrain’s CI решение с бесплатной версией для open-source продуктов, Лицензия: Проприетарная, платная
- Travis – Cервис хостинга CI, который часто использует в открытых продуктах, Лицензия: ?
- Hudson – Сервер непрерывной реализации для активной разработки, Лицензия: Eclipse Public License v1.0.
- Apache Continuum Сервер непрерывной реализации от Apache. Лицензия: Apache 2.
4. Formal Verification
Инструменты для формальной верефикации: proof assistants, model checking, symbolic execution и т.п. К оглавлению
- CATG – Concolic unit тест движок. Автоматически генерит unit тесты, используя ряд формальных методов, Лицензия: BSD 2, Лицензия: BSD 2.
- Checker Framework – Легко настраиваемая плагинами система типов, включет nullness типы, physical units, неизменяемые типы и прочее, Лицензия: GNU 2.
- Daikon – Daikon обнаруживает различные программные invariants и может генерировать JML спецификации, основанные на этих invariats, Лицензия: GNU.
- Java Modeling Language (JML) – Интерфейс поведенческих спецификаций, который может исопльзоваться для определения желаемого поведения программных модулей. Он комбинирует подход контрактного дизайна приложения от Eiffel и подход спецификаций модели, основанных на семействе Larch языков описания спецификаций интерфейсов, с некоторыми элементами от refinement calculus. Используется в некоторых других системах верефикации, Лицензия: GNU 2.
- Java Path Finder (JPF) – JVM инструмент formal верефикации, который содержит проверки модели и прочее. Созданн НАСА., Лицензия: NASA OPEN SOURCE AGREEMENT VERSION 1.3
- jCUTE – Concolic unit тест движок. Автоматически генерит unit тесты. Concolic выполнение комбинирует случайное concrete execution с symbolic execution и automatic constraint solving, Лицензия: Проприетарная, бесплатная для целей обучения и т.п.
- JMLOK 2.0 – Обнаруживает несоответствий между кодом и спецификацией JML с помощью генерации случайных тестов с обратной связью и предлагает возможные причины, вызывающие обнаруженные несоотвествия, Лицензия: GNU 3.
- KeY – KeY System это инструмент формальной верефикации основными целями которого являются интеграция дизайна, имплементации, формальной спецификации и формальная верефикация ООП настолько легко, насколько это возможно. Использует JML для спецификаций и symbolic execution для верефикации, Лицензия: GNU.
- OpenJML – Преобразует JML спецификации в SMT-LIB формат и находит проблемы и передает описание проблем к backend решателю, Лицензия: GNU 2 и Eclipse Public License v1.0.
V. Инструменты для упрощения разработки
1. IDE
К оглавлению
- JetBrains Intellij Сommunity IntelliJ IDEA Community Edition — одна из лучший IDE для Java . http://www.jetbrains.com/idea/ Лицензия: Apache 2 , рейтинг github’а – 2068.
- JetBrains Ideavim Плагин, эмулирующий Vim для IDE, основанных на IntelliJ платформе. Лицензия: GNU 2, рейтинг github’а – 1199.
- Rstudio RStudio это IDE для языка R. Лицензия: GNU AGPLv3, рейтинг github’а – 1048.
- Vrapper Плагин по добавлению Vim-подобного редактора в Eclipse. Лицензия: GNU 3.0, рейтинг github’а – 669.
- Eclipse themes Jeeeyul’s Eclipse Themes (прошлое имя Eclipse Chrome Theme) это возможность настроить каждую деталь Eclipse’а. Лицензия: Eclipse Public 1.0, рейтинг github’а – 623.
- Eclipse color theme Eclipse Color Theme позволяет легко импортировать и удобно менять цветовые темы без побочных эфектов. Лицензия: Eclipse Public 1.0, рейтинг github’а – 614.
- Eclim Добавление в редактор Vim возможностей Eclipse IDE. Лицензия: GNU 3, рейтинг github’а – 590.
- JetBrains MPS JetBrains MPS (Meta programming System) служит для быстрой разработки DSL (Domain Specific Language) для любого окружения и с возможностью скомпилировать DSL в множество языков, таких как Java, C, XML и другие. Лицензия: Apache 2 , рейтинг github’а – 525.
- Idea markdown Поддержка языка разметки Markdown в IntelliJ IDEA.. Лицензия: Apache 2 , рейтинг github’а – 405.
- Eclipse – Популярная открытая IDE поддерживающая большое количество плагинов и языков программирования, Лицензия: Eclipse Public License v1.0.
- NetBeans – IDE поддерживает большое количество различных возможностей для разработки Java SE и EE приложений от работы с базой данных до работы с HTML5, Лицензия: GNU 2 или CDDL 1.0
2. Инструменты и библиотеки для сборки, конфигурирования и развертывания Java приложений
К оглавлению
Build
Инструменты для сборки проекта (build) и работы с зависимостями(dependencies) приложения.
- Apache Maven – Система декларативной сборки и управления зависимостями, которая упрощает конфигурирование приложения. Это может быть предпочтительнее Apache Ant, используещего более процедурный подход, который сложнее поддерживать в большинстве случаев. Лицензия: Apache 2 , рейтинг github’а – 614.
- Google Bazel – Инструмент для сборки от Google, который позволяет собирать код быстро и надежно. Корректная, воспроизводимая и быстрая билд система для любых ситуаций Лицензия: Apache 2 , рейтинг github’а – 2809.
- Gradle – Система инкрементальной сборки, использующая для конфигурирования Groovy вместо XML. Хорошо совместима с Maven конфигурациями. Лицензия: Apache 2 , рейтинг github’а – 2465.
- Apache Ant – Инструмент для сборки проиложений, использующий XML для конфигурационных файлов, раньше был очень популярен, сейчас используется довольно редко. Подпроекты: Apache AntUnit – система тестирования файлов ant’a, Apache Compress Ant Library – дополнительные форматы архивов и сжатия, Apache Ivy – работа с зависимостями, Apache IvyDE – плагин Ivy для Eclipse. Лицензия: Apache 2.
- Facebook Buck – система сборки, упрощающая создание небольших, повторно используемых модулей. Лицензия: Apache 2 , рейтинг github’а – 1449.
- Archiva Apache The Build Artifact Repository Manager. Apache Archiva – расширяемый репозиторий артефактов сборки, идеально совместим с такими средствами сборки как Maven, Continuum и ANT. Лицензия: Apache 2.
Configuration
Библиотеки, управлящие конфигурированием К оглавлению
- config – Конфигурационная библиотека для JVM языков. Лицензия: Apache 2 , рейтинг github’а – 614.
- owner – Уменьшение бесмысленного типового кода для работы с properties, Лицензия: BSD 3.
- Netflix Archaius – библиотека, реализующая API для управления конфигурациями, используется Netflix. Лицензия: Apache 2 , рейтинг github’а – 614.
- LightAdmin – Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
- Apache Yetus Коллекция библиотек и инструменов для управления contribution и release процессами. Лицензия: Apache 2.
Distribution
Инструменты для работы с развертыванием (distribution) приложений в нативные форматы. К оглавлению
- Bintray – Контроль версий для бинарных файлов, так же может использовать вместе с Maven или Gradle и имеет свободный план для открытого ПО, а так же ряд различных бизнес планов, Лицензия: проприетарная платная, есть бесплатная версия для открытых продуктов
- Capsule – это система сборки приложения в один выполняемый JAR файл со всеми артефактами, ресурсами, нативными библиотеками и т.п. Простой и мощный инструмент для packaging и deployment. Толстый JAR на стероидах или “Docker для Java”, который поддерживает JVM-оптимизированные контейнеры, рейтинг github’а – 576. Лицензия: Eclipse Public License v1.0.
- Central Repository – Огромный бинарный репозеторий компонентов, который доступен как свободный сервис для проектов с открытым ПО. Используется Apache Maven и доступно для всех остальных инструментов сборки, Лицензия: проприетарная
- IzPack – Широко используемый набор инструментов для многоплатформенного развертывания приложений (deployments). Лицензия: Apache 2 , рейтинг github’а – 614.
- JitPack – Простой в использовании репозиторий пакетов для GitHub. Собирает Maven / Gradle проекты и публикует их в готовых к использованию пакетах. Лицензия: Apache 2 , рейтинг github’а – 614.
- Launch4j – Преобразует JARs файлы в легковесные и нативные исполнянмые файлы Windows , Лицензия: BSD 3 и MIT.
- Nexus – Усправления бинарными файлами с прокси и кэшированием, Лицензия: проприетарная платная
- packr – Преобразование JARs, assets и JVM в нативные приложения Windows, Linux и Mac OS X, Лицензия: Apache 2.
- Spotify Helios это Docker orchestration платформа для развертывания и управления контейнерами с помощью HTTP API или командной строки. Лицензия: Apache 2 , рейтинг github’а – 952.
3. Инструменты для оптимизации производительности
Библиотеки для оптимизации и решения проблем с производительностью К оглавлению
- Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 4168.
- Dropwizard Metrics – библиотека для замера различных метрик в Java приложении для простого понимания что и как код делает во время продакшена. . Лицензия: Apache 2 , рейтинг github’а – 3188.
- GCViewer Форк Tagtraum GCViewer — небольшой инструмент для подробной визуализации GC (garbage collector) логов (включая G1 collector). Лицензия: GNU Lesser 2.1, рейтинг github’а – 990.
- AdoptOpenJDK Jitwatch Анализатор логов Java HotSpot JIT компилятора, показывающий результаты используя JavaFX интерфейс. Лицензия: BSD 2, рейтинг github’а – 547.
- Naver Pinpoint это APM (Application Performance Management) инструмент мониторинга производительности крупномасштабных распределенных систем, написанных на Java. Создан на основе Google’s Dapper paper.. Лицензия: Apache 2 , рейтинг github’а – 486.
- jHiccup – Логирование и запись проблем с производительностью и потерь скорости у JVM, Лицензия: BSD 2.
- JMH – Microbenchmarking инструмент для JVM, Лицензия: GNU 2.
- LatencyUtils – Утилиты для измерения времени отклика приложения и составления отчетов, Лицензия: BSD 2.
- VisualVM – Визуальный интерфейс, показывающий детальную информацию о запущенных приложениях.Лицензия: GNU 2 with the Classpath Exception.
- JProfiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов
- YourKit Java Profiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов, спец.планы для научных и академических целей
- XRebel – Платный профайлер. Лицензия: Проприетарная платная
4. Анализ исходного кода
К оглавлению
- SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github’а – 655.
- Google Error prone – обнаружение типовых ошибок в Java коде. Лицензия: Apache 2 , рейтинг github’а – 590.
- OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c.. Лицензия: CDDL 1.0, рейтинг github’а – 570.
- Checkstyle – Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
- FindBugs – Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
- jQAssistant – Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
- PMD – Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.
5. Monitoring
Инструменты для мониторинга приложений в production. К оглавлению
- AppDynamics – Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- JavaMelody – Мониторинг производительности и профайлинг, Лицензия: Apache 2.
- jmxtrans – Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
- Kamon – Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
- New Relic – Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
- SPM – Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- Takipi – Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
К оглавлению
- Junit Простой и популярный фреймворк для unit тестирования . Лицензия: Eclipse Public 1.0 , рейтинг github’а – 3662.
- Mockito Mocking фреймворк для unit тестов, написанных на Java. Лицензия: MIT , рейтинг github’а – 1307.
- Selenium Фреймворк для автоматического тестирования в браузере . Лицензия: Apache 2 , рейтинг github’а – 1305.
- Cucumber jvm Портирование Cucumber фреймворка для JVM. Лицензия: MIT , рейтинг github’а – 1047.
- JBehave BDD фреймворк, обладающий широкими возможностями по конфигурации. BDD является эволюцией подходов к разработке через тестирование (англ. test-driven development, TDD) и через приемочное тестирование (англ. acceptance-test driven design, ATDD), а также предназначен для того, чтобы сделать эти практики более доступными и интуитивно понятными в одинаковой степени новичкам и экспертам. Лицензия: BSD 3, рейтинг github’а – 208.
- Spock Spock это фреймворк тестирования и создания спецификаций для Java и Groovy приложений . Лицензия: Apache 2 , рейтинг github’а – 669.
- Google Firing range Google Firing Range это тестовый вебсервер для приложений-сканеров уязвимостей вебсайтов. Firing Range создает широкий спектр синтетических уязвимостей. Лицензия: Apache 2 , рейтинг github’а – 650.
- Fitnesse FitNesse это система тестирования, вебсервер и вики. Лицензия: CPL-1.0, рейтинг github’а – 618.
- Sikuli Sikuli служит для написания скриптов, служащих для автоматизации работы со всем что вы ведите на экране.. Лицензия: MIT , рейтинг github’а – 609.
- JavaHamcrest Hamcrest это фреймворк для создания условий и правил в программных тестах, написанных на Java, он позволяет создать сложные выражения для этих условий (assertion matcher), которые потом могут использовать в системах unit тестирования, таких как JUnit или jMock. . Лицензия: BSD 3, рейтинг github’а – 561.
- Wiremock Инструментарий для создания mock’ов (заглушек для тестирования) HTTP сервисов. Лицензия: Apache 2 , рейтинг github’а – 508.
- Testng TestNG фреймворк для тестирования. Лицензия: Apache 2 , рейтинг github’а – 477.
- Galenframework Galen Galen Framework это мощный фреймворк для автоматического тестирования дизайна и функционала вебсайтов. Использует Selenium для работы с браузером и автоматического тестирования вебсайтов. Лицензия: Apache 2 , рейтинг github’а – 449.
- AssertJ AssertJ это библиотека предоставляющая мощный механизм работы с условиями (assertion) для тестовых фреймворков. Лицензия: Apache 2 , рейтинг github’а – 423.
- Google truth Фреймворк для задания ограничений и утверждений (Assertion/Proposition) в Unit тестах (версия ещё очень альфа, может быть полностью изменена ) . Лицензия: Apache 2 , рейтинг github’а – 394.
- Apache JMeter – Функциональное тестирование и замеры производительности. Лицензия: Apache 2.
- Arquillian – Интеграционная и функциональная платформа тестирования Java EE контейнеров, Лицензия: Apache 2.
- Awaitility – DSL для синхронизации ассинхроных операций, Лицензия: Apache 2.
- Citrus – Фреймворк интеграционного тестирования, которой фокусируется на тестировании клиент-серверного обмена сообщениями, Лицензия: Apache 2.
- Gatling – Содержит инструменты тестирования разработанные для легкого использования, легкого сопровождения и высокой производительности, Лицензия: MIT.
- GreenMail – In-memory email сервер для интеграционного тестирования, поддерживает SMTP, POP3 и IMAP включая SSL, Лицензия: MIT.
- JGiven – Удобный для разработчиков BDD фреймворк тестирования совместимый с JUnit и TestNG, Лицензия: MIT.
- JMockit – Создает мock’и статических и финальных методов, а так же многое другое, Лицензия: MIT.
- JUnitParams – Облегчает создание читабельных и легких в поддержке параметризованных тестов, Лицензия: Apache 2.
- Moco – Создание лаконичных вебсервисов для тестирования (stubs и mocks), награжден Duke’s Choice Award 2013, Лицензия: MIT.
- PIT – Быстрый мутационный фреймворк тестирования с возможностью обнаружения ошибок в написании существующих JUnit или TestNG тестах, Лицензия: Creative Commons License.
- PowerMock – Позволяет создание mock’ов статических методов, финальных классов и методов, приватных классов и удаление статических инициализаторов, Лицензия: Apache 2.
- REST Assured – Java DSL для легкого тестирования REST/HTTP сервисов, Лицензия: Apache 2.
- Selenide – Краткое API над Selenium, позволяющее писать стабильные и читабельные UI тесты, Лицензия: MIT.
- Unitils – Модульная библиотека тестирования для unit и интеграционного тестирования, Лицензия: Apache 2.
- SeLion – SeLion это инструмент автоматического тестирования от paypal, построенный на основе TestNG и Selenium, может использоваться для тестирования веб и мобильных приложений. github’s star – 63. Лицензия: Apache 2.
2. Code Coverage
Фреймворки и инструменты для получения набора code coverage метрик для тестов. К оглавлению
- JaCoCo – Фреймворк, который позволяет собирать метрики покрытия кода тестами, используя как offline, так и runtime байткод инструменты, используется в EclEmma, плагине Eclipse для определения степени покрытия тестами, Лицензия: Eclipse Public License v1.0, Apache 2, BSD.
- Clover – Проприетарный инструмент для определения степени покрытия кода тестами от Atlassian, который основан на анализе исходного кода вместо анализа байткода, Лицензия: платная, проприетарная
- Cobertura – Использует автономный (или статическый) инструментарий анализа байткода и class loading’a для получения метрик покрытия кода тестами, Лицензия: GNU 2.
- JCov – Набор инструментов для анализа покрытия кода тестами, который используется при разработке OpenJDK проекта, Лицензия: GNU 2.
3. Continuous Integration
Набор инструментов, поддерживающих непрерывную сборку, тестирование и релизы приложений. К оглавлению
- Bamboo – Atlassian’s решение с хорошей интеграцией с другими продуктами этой компании. Можно использовать либо подав заявку на бесплатную лицензию или просто купив его,
- CircleCI – Cервис хостинга CI с бесплатным тестовым сроком,
- Codeship – Cервис хостинга CI с ограниченными бесплатными планами.
- fabric8 – Интеграционная платформа для контайнеров, Лицензия: Apache 2.
- Go – Открытое решение от ThoughtWork. Есть платная поддержка, Лицензия: Apache 2.
- Jenkins – Предоставляет серверное решение для развертывания сервисов, Лицензия: MIT.
- TeamCity – JetBrain’s CI решение с бесплатной версией для open-source продуктов, Лицензия: Проприетарная, платная
- Travis – Cервис хостинга CI, который часто использует в открытых продуктах, Лицензия: ?
- Hudson – Сервер непрерывной реализации для активной разработки, Лицензия: Eclipse Public License v1.0.
- Apache Continuum Сервер непрерывной реализации от Apache. Лицензия: Apache 2.
4. Formal Verification
Инструменты для формальной верефикации: proof assistants, model checking, symbolic execution и т.п. К оглавлению
- CATG – Concolic unit тест движок. Автоматически генерит unit тесты, используя ряд формальных методов, Лицензия: BSD 2, Лицензия: BSD 2.
- Checker Framework – Легко настраиваемая плагинами система типов, включет nullness типы, physical units, неизменяемые типы и прочее, Лицензия: GNU 2.
- Daikon – Daikon обнаруживает различные программные invariants и может генерировать JML спецификации, основанные на этих invariats, Лицензия: GNU.
- Java Modeling Language (JML) – Интерфейс поведенческих спецификаций, который может исопльзоваться для определения желаемого поведения программных модулей. Он комбинирует подход контрактного дизайна приложения от Eiffel и подход спецификаций модели, основанных на семействе Larch языков описания спецификаций интерфейсов, с некоторыми элементами от refinement calculus. Используется в некоторых других системах верефикации, Лицензия: GNU 2.
- Java Path Finder (JPF) – JVM инструмент formal верефикации, который содержит проверки модели и прочее. Созданн НАСА., Лицензия: NASA OPEN SOURCE AGREEMENT VERSION 1.3
- jCUTE – Concolic unit тест движок. Автоматически генерит unit тесты. Concolic выполнение комбинирует случайное concrete execution с symbolic execution и automatic constraint solving, Лицензия: Проприетарная, бесплатная для целей обучения и т.п.
- JMLOK 2.0 – Обнаруживает несоответствий между кодом и спецификацией JML с помощью генерации случайных тестов с обратной связью и предлагает возможные причины, вызывающие обнаруженные несоотвествия, Лицензия: GNU 3.
- KeY – KeY System это инструмент формальной верефикации основными целями которого являются интеграция дизайна, имплементации, формальной спецификации и формальная верефикация ООП настолько легко, насколько это возможно. Использует JML для спецификаций и symbolic execution для верефикации, Лицензия: GNU.
- OpenJML – Преобразует JML спецификации в SMT-LIB формат и находит проблемы и передает описание проблем к backend решателю, Лицензия: GNU 2 и Eclipse Public License v1.0.
V. Инструменты для упрощения разработки
1. IDE
К оглавлению
- JetBrains Intellij Сommunity IntelliJ IDEA Community Edition — одна из лучший IDE для Java . http://www.jetbrains.com/idea/ Лицензия: Apache 2 , рейтинг github’а – 2068.
- JetBrains Ideavim Плагин, эмулирующий Vim для IDE, основанных на IntelliJ платформе. Лицензия: GNU 2, рейтинг github’а – 1199.
- Rstudio RStudio это IDE для языка R. Лицензия: GNU AGPLv3, рейтинг github’а – 1048.
- Vrapper Плагин по добавлению Vim-подобного редактора в Eclipse. Лицензия: GNU 3.0, рейтинг github’а – 669.
- Eclipse themes Jeeeyul’s Eclipse Themes (прошлое имя Eclipse Chrome Theme) это возможность настроить каждую деталь Eclipse’а. Лицензия: Eclipse Public 1.0, рейтинг github’а – 623.
- Eclipse color theme Eclipse Color Theme позволяет легко импортировать и удобно менять цветовые темы без побочных эфектов. Лицензия: Eclipse Public 1.0, рейтинг github’а – 614.
- Eclim Добавление в редактор Vim возможностей Eclipse IDE. Лицензия: GNU 3, рейтинг github’а – 590.
- JetBrains MPS JetBrains MPS (Meta programming System) служит для быстрой разработки DSL (Domain Specific Language) для любого окружения и с возможностью скомпилировать DSL в множество языков, таких как Java, C, XML и другие. Лицензия: Apache 2 , рейтинг github’а – 525.
- Idea markdown Поддержка языка разметки Markdown в IntelliJ IDEA.. Лицензия: Apache 2 , рейтинг github’а – 405.
- Eclipse – Популярная открытая IDE поддерживающая большое количество плагинов и языков программирования, Лицензия: Eclipse Public License v1.0.
- NetBeans – IDE поддерживает большое количество различных возможностей для разработки Java SE и EE приложений от работы с базой данных до работы с HTML5, Лицензия: GNU 2 или CDDL 1.0
2. Инструменты и библиотеки для сборки, конфигурирования и развертывания Java приложений
К оглавлению
Build
Инструменты для сборки проекта (build) и работы с зависимостями(dependencies) приложения.
- Apache Maven – Система декларативной сборки и управления зависимостями, которая упрощает конфигурирование приложения. Это может быть предпочтительнее Apache Ant, используещего более процедурный подход, который сложнее поддерживать в большинстве случаев. Лицензия: Apache 2 , рейтинг github’а – 614.
- Google Bazel – Инструмент для сборки от Google, который позволяет собирать код быстро и надежно. Корректная, воспроизводимая и быстрая билд система для любых ситуаций Лицензия: Apache 2 , рейтинг github’а – 2809.
- Gradle – Система инкрементальной сборки, использующая для конфигурирования Groovy вместо XML. Хорошо совместима с Maven конфигурациями. Лицензия: Apache 2 , рейтинг github’а – 2465.
- Apache Ant – Инструмент для сборки проиложений, использующий XML для конфигурационных файлов, раньше был очень популярен, сейчас используется довольно редко. Подпроекты: Apache AntUnit – система тестирования файлов ant’a, Apache Compress Ant Library – дополнительные форматы архивов и сжатия, Apache Ivy – работа с зависимостями, Apache IvyDE – плагин Ivy для Eclipse. Лицензия: Apache 2.
- Facebook Buck – система сборки, упрощающая создание небольших, повторно используемых модулей. Лицензия: Apache 2 , рейтинг github’а – 1449.
- Archiva Apache The Build Artifact Repository Manager. Apache Archiva – расширяемый репозиторий артефактов сборки, идеально совместим с такими средствами сборки как Maven, Continuum и ANT. Лицензия: Apache 2.
Configuration
Библиотеки, управлящие конфигурированием К оглавлению
- config – Конфигурационная библиотека для JVM языков. Лицензия: Apache 2 , рейтинг github’а – 614.
- owner – Уменьшение бесмысленного типового кода для работы с properties, Лицензия: BSD 3.
- Netflix Archaius – библиотека, реализующая API для управления конфигурациями, используется Netflix. Лицензия: Apache 2 , рейтинг github’а – 614.
- LightAdmin – Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
- Apache Yetus Коллекция библиотек и инструменов для управления contribution и release процессами. Лицензия: Apache 2.
Distribution
Инструменты для работы с развертыванием (distribution) приложений в нативные форматы. К оглавлению
- Bintray – Контроль версий для бинарных файлов, так же может использовать вместе с Maven или Gradle и имеет свободный план для открытого ПО, а так же ряд различных бизнес планов, Лицензия: проприетарная платная, есть бесплатная версия для открытых продуктов
- Capsule – это система сборки приложения в один выполняемый JAR файл со всеми артефактами, ресурсами, нативными библиотеками и т.п. Простой и мощный инструмент для packaging и deployment. Толстый JAR на стероидах или “Docker для Java”, который поддерживает JVM-оптимизированные контейнеры, рейтинг github’а – 576. Лицензия: Eclipse Public License v1.0.
- Central Repository – Огромный бинарный репозеторий компонентов, который доступен как свободный сервис для проектов с открытым ПО. Используется Apache Maven и доступно для всех остальных инструментов сборки, Лицензия: проприетарная
- IzPack – Широко используемый набор инструментов для многоплатформенного развертывания приложений (deployments). Лицензия: Apache 2 , рейтинг github’а – 614.
- JitPack – Простой в использовании репозиторий пакетов для GitHub. Собирает Maven / Gradle проекты и публикует их в готовых к использованию пакетах. Лицензия: Apache 2 , рейтинг github’а – 614.
- Launch4j – Преобразует JARs файлы в легковесные и нативные исполнянмые файлы Windows , Лицензия: BSD 3 и MIT.
- Nexus – Усправления бинарными файлами с прокси и кэшированием, Лицензия: проприетарная платная
- packr – Преобразование JARs, assets и JVM в нативные приложения Windows, Linux и Mac OS X, Лицензия: Apache 2.
- Spotify Helios это Docker orchestration платформа для развертывания и управления контейнерами с помощью HTTP API или командной строки. Лицензия: Apache 2 , рейтинг github’а – 952.
3. Инструменты для оптимизации производительности
Библиотеки для оптимизации и решения проблем с производительностью К оглавлению
- Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 4168.
- Dropwizard Metrics – библиотека для замера различных метрик в Java приложении для простого понимания что и как код делает во время продакшена. . Лицензия: Apache 2 , рейтинг github’а – 3188.
- GCViewer Форк Tagtraum GCViewer — небольшой инструмент для подробной визуализации GC (garbage collector) логов (включая G1 collector). Лицензия: GNU Lesser 2.1, рейтинг github’а – 990.
- AdoptOpenJDK Jitwatch Анализатор логов Java HotSpot JIT компилятора, показывающий результаты используя JavaFX интерфейс. Лицензия: BSD 2, рейтинг github’а – 547.
- Naver Pinpoint это APM (Application Performance Management) инструмент мониторинга производительности крупномасштабных распределенных систем, написанных на Java. Создан на основе Google’s Dapper paper.. Лицензия: Apache 2 , рейтинг github’а – 486.
- jHiccup – Логирование и запись проблем с производительностью и потерь скорости у JVM, Лицензия: BSD 2.
- JMH – Microbenchmarking инструмент для JVM, Лицензия: GNU 2.
- LatencyUtils – Утилиты для измерения времени отклика приложения и составления отчетов, Лицензия: BSD 2.
- VisualVM – Визуальный интерфейс, показывающий детальную информацию о запущенных приложениях.Лицензия: GNU 2 with the Classpath Exception.
- JProfiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов
- YourKit Java Profiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов, спец.планы для научных и академических целей
- XRebel – Платный профайлер. Лицензия: Проприетарная платная
4. Анализ исходного кода
К оглавлению
- SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github’а – 655.
- Google Error prone – обнаружение типовых ошибок в Java коде. Лицензия: Apache 2 , рейтинг github’а – 590.
- OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c.. Лицензия: CDDL 1.0, рейтинг github’а – 570.
- Checkstyle – Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
- FindBugs – Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
- jQAssistant – Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
- PMD – Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.
5. Monitoring
Инструменты для мониторинга приложений в production. К оглавлению
- AppDynamics – Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- JavaMelody – Мониторинг производительности и профайлинг, Лицензия: Apache 2.
- jmxtrans – Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
- Kamon – Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
- New Relic – Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
- SPM – Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- Takipi – Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
Набор инструментов, поддерживающих непрерывную сборку, тестирование и релизы приложений. К оглавлению
- Bamboo – Atlassian’s решение с хорошей интеграцией с другими продуктами этой компании. Можно использовать либо подав заявку на бесплатную лицензию или просто купив его,
- CircleCI – Cервис хостинга CI с бесплатным тестовым сроком,
- Codeship – Cервис хостинга CI с ограниченными бесплатными планами.
- fabric8 – Интеграционная платформа для контайнеров, Лицензия: Apache 2.
- Go – Открытое решение от ThoughtWork. Есть платная поддержка, Лицензия: Apache 2.
- Jenkins – Предоставляет серверное решение для развертывания сервисов, Лицензия: MIT.
- TeamCity – JetBrain’s CI решение с бесплатной версией для open-source продуктов, Лицензия: Проприетарная, платная
- Travis – Cервис хостинга CI, который часто использует в открытых продуктах, Лицензия: ?
- Hudson – Сервер непрерывной реализации для активной разработки, Лицензия: Eclipse Public License v1.0.
- Apache Continuum Сервер непрерывной реализации от Apache. Лицензия: Apache 2.
4. Formal Verification
Инструменты для формальной верефикации: proof assistants, model checking, symbolic execution и т.п. К оглавлению
- CATG – Concolic unit тест движок. Автоматически генерит unit тесты, используя ряд формальных методов, Лицензия: BSD 2, Лицензия: BSD 2.
- Checker Framework – Легко настраиваемая плагинами система типов, включет nullness типы, physical units, неизменяемые типы и прочее, Лицензия: GNU 2.
- Daikon – Daikon обнаруживает различные программные invariants и может генерировать JML спецификации, основанные на этих invariats, Лицензия: GNU.
- Java Modeling Language (JML) – Интерфейс поведенческих спецификаций, который может исопльзоваться для определения желаемого поведения программных модулей. Он комбинирует подход контрактного дизайна приложения от Eiffel и подход спецификаций модели, основанных на семействе Larch языков описания спецификаций интерфейсов, с некоторыми элементами от refinement calculus. Используется в некоторых других системах верефикации, Лицензия: GNU 2.
- Java Path Finder (JPF) – JVM инструмент formal верефикации, который содержит проверки модели и прочее. Созданн НАСА., Лицензия: NASA OPEN SOURCE AGREEMENT VERSION 1.3
- jCUTE – Concolic unit тест движок. Автоматически генерит unit тесты. Concolic выполнение комбинирует случайное concrete execution с symbolic execution и automatic constraint solving, Лицензия: Проприетарная, бесплатная для целей обучения и т.п.
- JMLOK 2.0 – Обнаруживает несоответствий между кодом и спецификацией JML с помощью генерации случайных тестов с обратной связью и предлагает возможные причины, вызывающие обнаруженные несоотвествия, Лицензия: GNU 3.
- KeY – KeY System это инструмент формальной верефикации основными целями которого являются интеграция дизайна, имплементации, формальной спецификации и формальная верефикация ООП настолько легко, насколько это возможно. Использует JML для спецификаций и symbolic execution для верефикации, Лицензия: GNU.
- OpenJML – Преобразует JML спецификации в SMT-LIB формат и находит проблемы и передает описание проблем к backend решателю, Лицензия: GNU 2 и Eclipse Public License v1.0.
V. Инструменты для упрощения разработки
1. IDE
К оглавлению
- JetBrains Intellij Сommunity IntelliJ IDEA Community Edition — одна из лучший IDE для Java . http://www.jetbrains.com/idea/ Лицензия: Apache 2 , рейтинг github’а – 2068.
- JetBrains Ideavim Плагин, эмулирующий Vim для IDE, основанных на IntelliJ платформе. Лицензия: GNU 2, рейтинг github’а – 1199.
- Rstudio RStudio это IDE для языка R. Лицензия: GNU AGPLv3, рейтинг github’а – 1048.
- Vrapper Плагин по добавлению Vim-подобного редактора в Eclipse. Лицензия: GNU 3.0, рейтинг github’а – 669.
- Eclipse themes Jeeeyul’s Eclipse Themes (прошлое имя Eclipse Chrome Theme) это возможность настроить каждую деталь Eclipse’а. Лицензия: Eclipse Public 1.0, рейтинг github’а – 623.
- Eclipse color theme Eclipse Color Theme позволяет легко импортировать и удобно менять цветовые темы без побочных эфектов. Лицензия: Eclipse Public 1.0, рейтинг github’а – 614.
- Eclim Добавление в редактор Vim возможностей Eclipse IDE. Лицензия: GNU 3, рейтинг github’а – 590.
- JetBrains MPS JetBrains MPS (Meta programming System) служит для быстрой разработки DSL (Domain Specific Language) для любого окружения и с возможностью скомпилировать DSL в множество языков, таких как Java, C, XML и другие. Лицензия: Apache 2 , рейтинг github’а – 525.
- Idea markdown Поддержка языка разметки Markdown в IntelliJ IDEA.. Лицензия: Apache 2 , рейтинг github’а – 405.
- Eclipse – Популярная открытая IDE поддерживающая большое количество плагинов и языков программирования, Лицензия: Eclipse Public License v1.0.
- NetBeans – IDE поддерживает большое количество различных возможностей для разработки Java SE и EE приложений от работы с базой данных до работы с HTML5, Лицензия: GNU 2 или CDDL 1.0
2. Инструменты и библиотеки для сборки, конфигурирования и развертывания Java приложений
К оглавлению
Build
Инструменты для сборки проекта (build) и работы с зависимостями(dependencies) приложения.
- Apache Maven – Система декларативной сборки и управления зависимостями, которая упрощает конфигурирование приложения. Это может быть предпочтительнее Apache Ant, используещего более процедурный подход, который сложнее поддерживать в большинстве случаев. Лицензия: Apache 2 , рейтинг github’а – 614.
- Google Bazel – Инструмент для сборки от Google, который позволяет собирать код быстро и надежно. Корректная, воспроизводимая и быстрая билд система для любых ситуаций Лицензия: Apache 2 , рейтинг github’а – 2809.
- Gradle – Система инкрементальной сборки, использующая для конфигурирования Groovy вместо XML. Хорошо совместима с Maven конфигурациями. Лицензия: Apache 2 , рейтинг github’а – 2465.
- Apache Ant – Инструмент для сборки проиложений, использующий XML для конфигурационных файлов, раньше был очень популярен, сейчас используется довольно редко. Подпроекты: Apache AntUnit – система тестирования файлов ant’a, Apache Compress Ant Library – дополнительные форматы архивов и сжатия, Apache Ivy – работа с зависимостями, Apache IvyDE – плагин Ivy для Eclipse. Лицензия: Apache 2.
- Facebook Buck – система сборки, упрощающая создание небольших, повторно используемых модулей. Лицензия: Apache 2 , рейтинг github’а – 1449.
- Archiva Apache The Build Artifact Repository Manager. Apache Archiva – расширяемый репозиторий артефактов сборки, идеально совместим с такими средствами сборки как Maven, Continuum и ANT. Лицензия: Apache 2.
Configuration
Библиотеки, управлящие конфигурированием К оглавлению
- config – Конфигурационная библиотека для JVM языков. Лицензия: Apache 2 , рейтинг github’а – 614.
- owner – Уменьшение бесмысленного типового кода для работы с properties, Лицензия: BSD 3.
- Netflix Archaius – библиотека, реализующая API для управления конфигурациями, используется Netflix. Лицензия: Apache 2 , рейтинг github’а – 614.
- LightAdmin – Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
- Apache Yetus Коллекция библиотек и инструменов для управления contribution и release процессами. Лицензия: Apache 2.
Distribution
Инструменты для работы с развертыванием (distribution) приложений в нативные форматы. К оглавлению
- Bintray – Контроль версий для бинарных файлов, так же может использовать вместе с Maven или Gradle и имеет свободный план для открытого ПО, а так же ряд различных бизнес планов, Лицензия: проприетарная платная, есть бесплатная версия для открытых продуктов
- Capsule – это система сборки приложения в один выполняемый JAR файл со всеми артефактами, ресурсами, нативными библиотеками и т.п. Простой и мощный инструмент для packaging и deployment. Толстый JAR на стероидах или “Docker для Java”, который поддерживает JVM-оптимизированные контейнеры, рейтинг github’а – 576. Лицензия: Eclipse Public License v1.0.
- Central Repository – Огромный бинарный репозеторий компонентов, который доступен как свободный сервис для проектов с открытым ПО. Используется Apache Maven и доступно для всех остальных инструментов сборки, Лицензия: проприетарная
- IzPack – Широко используемый набор инструментов для многоплатформенного развертывания приложений (deployments). Лицензия: Apache 2 , рейтинг github’а – 614.
- JitPack – Простой в использовании репозиторий пакетов для GitHub. Собирает Maven / Gradle проекты и публикует их в готовых к использованию пакетах. Лицензия: Apache 2 , рейтинг github’а – 614.
- Launch4j – Преобразует JARs файлы в легковесные и нативные исполнянмые файлы Windows , Лицензия: BSD 3 и MIT.
- Nexus – Усправления бинарными файлами с прокси и кэшированием, Лицензия: проприетарная платная
- packr – Преобразование JARs, assets и JVM в нативные приложения Windows, Linux и Mac OS X, Лицензия: Apache 2.
- Spotify Helios это Docker orchestration платформа для развертывания и управления контейнерами с помощью HTTP API или командной строки. Лицензия: Apache 2 , рейтинг github’а – 952.
3. Инструменты для оптимизации производительности
Библиотеки для оптимизации и решения проблем с производительностью К оглавлению
- Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 4168.
- Dropwizard Metrics – библиотека для замера различных метрик в Java приложении для простого понимания что и как код делает во время продакшена. . Лицензия: Apache 2 , рейтинг github’а – 3188.
- GCViewer Форк Tagtraum GCViewer — небольшой инструмент для подробной визуализации GC (garbage collector) логов (включая G1 collector). Лицензия: GNU Lesser 2.1, рейтинг github’а – 990.
- AdoptOpenJDK Jitwatch Анализатор логов Java HotSpot JIT компилятора, показывающий результаты используя JavaFX интерфейс. Лицензия: BSD 2, рейтинг github’а – 547.
- Naver Pinpoint это APM (Application Performance Management) инструмент мониторинга производительности крупномасштабных распределенных систем, написанных на Java. Создан на основе Google’s Dapper paper.. Лицензия: Apache 2 , рейтинг github’а – 486.
- jHiccup – Логирование и запись проблем с производительностью и потерь скорости у JVM, Лицензия: BSD 2.
- JMH – Microbenchmarking инструмент для JVM, Лицензия: GNU 2.
- LatencyUtils – Утилиты для измерения времени отклика приложения и составления отчетов, Лицензия: BSD 2.
- VisualVM – Визуальный интерфейс, показывающий детальную информацию о запущенных приложениях.Лицензия: GNU 2 with the Classpath Exception.
- JProfiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов
- YourKit Java Profiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов, спец.планы для научных и академических целей
- XRebel – Платный профайлер. Лицензия: Проприетарная платная
4. Анализ исходного кода
К оглавлению
- SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github’а – 655.
- Google Error prone – обнаружение типовых ошибок в Java коде. Лицензия: Apache 2 , рейтинг github’а – 590.
- OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c.. Лицензия: CDDL 1.0, рейтинг github’а – 570.
- Checkstyle – Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
- FindBugs – Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
- jQAssistant – Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
- PMD – Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.
5. Monitoring
Инструменты для мониторинга приложений в production. К оглавлению
- AppDynamics – Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- JavaMelody – Мониторинг производительности и профайлинг, Лицензия: Apache 2.
- jmxtrans – Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
- Kamon – Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
- New Relic – Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
- SPM – Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- Takipi – Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
К оглавлению
- JetBrains Intellij Сommunity IntelliJ IDEA Community Edition — одна из лучший IDE для Java . http://www.jetbrains.com/idea/ Лицензия: Apache 2 , рейтинг github’а – 2068.
- JetBrains Ideavim Плагин, эмулирующий Vim для IDE, основанных на IntelliJ платформе. Лицензия: GNU 2, рейтинг github’а – 1199.
- Rstudio RStudio это IDE для языка R. Лицензия: GNU AGPLv3, рейтинг github’а – 1048.
- Vrapper Плагин по добавлению Vim-подобного редактора в Eclipse. Лицензия: GNU 3.0, рейтинг github’а – 669.
- Eclipse themes Jeeeyul’s Eclipse Themes (прошлое имя Eclipse Chrome Theme) это возможность настроить каждую деталь Eclipse’а. Лицензия: Eclipse Public 1.0, рейтинг github’а – 623.
- Eclipse color theme Eclipse Color Theme позволяет легко импортировать и удобно менять цветовые темы без побочных эфектов. Лицензия: Eclipse Public 1.0, рейтинг github’а – 614.
- Eclim Добавление в редактор Vim возможностей Eclipse IDE. Лицензия: GNU 3, рейтинг github’а – 590.
- JetBrains MPS JetBrains MPS (Meta programming System) служит для быстрой разработки DSL (Domain Specific Language) для любого окружения и с возможностью скомпилировать DSL в множество языков, таких как Java, C, XML и другие. Лицензия: Apache 2 , рейтинг github’а – 525.
- Idea markdown Поддержка языка разметки Markdown в IntelliJ IDEA.. Лицензия: Apache 2 , рейтинг github’а – 405.
- Eclipse – Популярная открытая IDE поддерживающая большое количество плагинов и языков программирования, Лицензия: Eclipse Public License v1.0.
- NetBeans – IDE поддерживает большое количество различных возможностей для разработки Java SE и EE приложений от работы с базой данных до работы с HTML5, Лицензия: GNU 2 или CDDL 1.0
2. Инструменты и библиотеки для сборки, конфигурирования и развертывания Java приложений
К оглавлению
Build
Инструменты для сборки проекта (build) и работы с зависимостями(dependencies) приложения.
- Apache Maven – Система декларативной сборки и управления зависимостями, которая упрощает конфигурирование приложения. Это может быть предпочтительнее Apache Ant, используещего более процедурный подход, который сложнее поддерживать в большинстве случаев. Лицензия: Apache 2 , рейтинг github’а – 614.
- Google Bazel – Инструмент для сборки от Google, который позволяет собирать код быстро и надежно. Корректная, воспроизводимая и быстрая билд система для любых ситуаций Лицензия: Apache 2 , рейтинг github’а – 2809.
- Gradle – Система инкрементальной сборки, использующая для конфигурирования Groovy вместо XML. Хорошо совместима с Maven конфигурациями. Лицензия: Apache 2 , рейтинг github’а – 2465.
- Apache Ant – Инструмент для сборки проиложений, использующий XML для конфигурационных файлов, раньше был очень популярен, сейчас используется довольно редко. Подпроекты: Apache AntUnit – система тестирования файлов ant’a, Apache Compress Ant Library – дополнительные форматы архивов и сжатия, Apache Ivy – работа с зависимостями, Apache IvyDE – плагин Ivy для Eclipse. Лицензия: Apache 2.
- Facebook Buck – система сборки, упрощающая создание небольших, повторно используемых модулей. Лицензия: Apache 2 , рейтинг github’а – 1449.
- Archiva Apache The Build Artifact Repository Manager. Apache Archiva – расширяемый репозиторий артефактов сборки, идеально совместим с такими средствами сборки как Maven, Continuum и ANT. Лицензия: Apache 2.
Configuration
Библиотеки, управлящие конфигурированием К оглавлению
- config – Конфигурационная библиотека для JVM языков. Лицензия: Apache 2 , рейтинг github’а – 614.
- owner – Уменьшение бесмысленного типового кода для работы с properties, Лицензия: BSD 3.
- Netflix Archaius – библиотека, реализующая API для управления конфигурациями, используется Netflix. Лицензия: Apache 2 , рейтинг github’а – 614.
- LightAdmin – Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
- Apache Yetus Коллекция библиотек и инструменов для управления contribution и release процессами. Лицензия: Apache 2.
Distribution
Инструменты для работы с развертыванием (distribution) приложений в нативные форматы. К оглавлению
- Bintray – Контроль версий для бинарных файлов, так же может использовать вместе с Maven или Gradle и имеет свободный план для открытого ПО, а так же ряд различных бизнес планов, Лицензия: проприетарная платная, есть бесплатная версия для открытых продуктов
- Capsule – это система сборки приложения в один выполняемый JAR файл со всеми артефактами, ресурсами, нативными библиотеками и т.п. Простой и мощный инструмент для packaging и deployment. Толстый JAR на стероидах или “Docker для Java”, который поддерживает JVM-оптимизированные контейнеры, рейтинг github’а – 576. Лицензия: Eclipse Public License v1.0.
- Central Repository – Огромный бинарный репозеторий компонентов, который доступен как свободный сервис для проектов с открытым ПО. Используется Apache Maven и доступно для всех остальных инструментов сборки, Лицензия: проприетарная
- IzPack – Широко используемый набор инструментов для многоплатформенного развертывания приложений (deployments). Лицензия: Apache 2 , рейтинг github’а – 614.
- JitPack – Простой в использовании репозиторий пакетов для GitHub. Собирает Maven / Gradle проекты и публикует их в готовых к использованию пакетах. Лицензия: Apache 2 , рейтинг github’а – 614.
- Launch4j – Преобразует JARs файлы в легковесные и нативные исполнянмые файлы Windows , Лицензия: BSD 3 и MIT.
- Nexus – Усправления бинарными файлами с прокси и кэшированием, Лицензия: проприетарная платная
- packr – Преобразование JARs, assets и JVM в нативные приложения Windows, Linux и Mac OS X, Лицензия: Apache 2.
- Spotify Helios это Docker orchestration платформа для развертывания и управления контейнерами с помощью HTTP API или командной строки. Лицензия: Apache 2 , рейтинг github’а – 952.
3. Инструменты для оптимизации производительности
Библиотеки для оптимизации и решения проблем с производительностью К оглавлению
- Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 4168.
- Dropwizard Metrics – библиотека для замера различных метрик в Java приложении для простого понимания что и как код делает во время продакшена. . Лицензия: Apache 2 , рейтинг github’а – 3188.
- GCViewer Форк Tagtraum GCViewer — небольшой инструмент для подробной визуализации GC (garbage collector) логов (включая G1 collector). Лицензия: GNU Lesser 2.1, рейтинг github’а – 990.
- AdoptOpenJDK Jitwatch Анализатор логов Java HotSpot JIT компилятора, показывающий результаты используя JavaFX интерфейс. Лицензия: BSD 2, рейтинг github’а – 547.
- Naver Pinpoint это APM (Application Performance Management) инструмент мониторинга производительности крупномасштабных распределенных систем, написанных на Java. Создан на основе Google’s Dapper paper.. Лицензия: Apache 2 , рейтинг github’а – 486.
- jHiccup – Логирование и запись проблем с производительностью и потерь скорости у JVM, Лицензия: BSD 2.
- JMH – Microbenchmarking инструмент для JVM, Лицензия: GNU 2.
- LatencyUtils – Утилиты для измерения времени отклика приложения и составления отчетов, Лицензия: BSD 2.
- VisualVM – Визуальный интерфейс, показывающий детальную информацию о запущенных приложениях.Лицензия: GNU 2 with the Classpath Exception.
- JProfiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов
- YourKit Java Profiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов, спец.планы для научных и академических целей
- XRebel – Платный профайлер. Лицензия: Проприетарная платная
4. Анализ исходного кода
К оглавлению
- SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github’а – 655.
- Google Error prone – обнаружение типовых ошибок в Java коде. Лицензия: Apache 2 , рейтинг github’а – 590.
- OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c.. Лицензия: CDDL 1.0, рейтинг github’а – 570.
- Checkstyle – Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
- FindBugs – Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
- jQAssistant – Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
- PMD – Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.
5. Monitoring
Инструменты для мониторинга приложений в production. К оглавлению
- AppDynamics – Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- JavaMelody – Мониторинг производительности и профайлинг, Лицензия: Apache 2.
- jmxtrans – Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
- Kamon – Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
- New Relic – Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
- SPM – Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- Takipi – Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
Инструменты для сборки проекта (build) и работы с зависимостями(dependencies) приложения.
- Apache Maven – Система декларативной сборки и управления зависимостями, которая упрощает конфигурирование приложения. Это может быть предпочтительнее Apache Ant, используещего более процедурный подход, который сложнее поддерживать в большинстве случаев. Лицензия: Apache 2 , рейтинг github’а – 614.
- Google Bazel – Инструмент для сборки от Google, который позволяет собирать код быстро и надежно. Корректная, воспроизводимая и быстрая билд система для любых ситуаций Лицензия: Apache 2 , рейтинг github’а – 2809.
- Gradle – Система инкрементальной сборки, использующая для конфигурирования Groovy вместо XML. Хорошо совместима с Maven конфигурациями. Лицензия: Apache 2 , рейтинг github’а – 2465.
- Apache Ant – Инструмент для сборки проиложений, использующий XML для конфигурационных файлов, раньше был очень популярен, сейчас используется довольно редко. Подпроекты: Apache AntUnit – система тестирования файлов ant’a, Apache Compress Ant Library – дополнительные форматы архивов и сжатия, Apache Ivy – работа с зависимостями, Apache IvyDE – плагин Ivy для Eclipse. Лицензия: Apache 2.
- Facebook Buck – система сборки, упрощающая создание небольших, повторно используемых модулей. Лицензия: Apache 2 , рейтинг github’а – 1449.
- Archiva Apache The Build Artifact Repository Manager. Apache Archiva – расширяемый репозиторий артефактов сборки, идеально совместим с такими средствами сборки как Maven, Continuum и ANT. Лицензия: Apache 2.
Configuration
Библиотеки, управлящие конфигурированием К оглавлению
- config – Конфигурационная библиотека для JVM языков. Лицензия: Apache 2 , рейтинг github’а – 614.
- owner – Уменьшение бесмысленного типового кода для работы с properties, Лицензия: BSD 3.
- Netflix Archaius – библиотека, реализующая API для управления конфигурациями, используется Netflix. Лицензия: Apache 2 , рейтинг github’а – 614.
- LightAdmin – Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
- Apache Yetus Коллекция библиотек и инструменов для управления contribution и release процессами. Лицензия: Apache 2.
Distribution
Инструменты для работы с развертыванием (distribution) приложений в нативные форматы. К оглавлению
- Bintray – Контроль версий для бинарных файлов, так же может использовать вместе с Maven или Gradle и имеет свободный план для открытого ПО, а так же ряд различных бизнес планов, Лицензия: проприетарная платная, есть бесплатная версия для открытых продуктов
- Capsule – это система сборки приложения в один выполняемый JAR файл со всеми артефактами, ресурсами, нативными библиотеками и т.п. Простой и мощный инструмент для packaging и deployment. Толстый JAR на стероидах или “Docker для Java”, который поддерживает JVM-оптимизированные контейнеры, рейтинг github’а – 576. Лицензия: Eclipse Public License v1.0.
- Central Repository – Огромный бинарный репозеторий компонентов, который доступен как свободный сервис для проектов с открытым ПО. Используется Apache Maven и доступно для всех остальных инструментов сборки, Лицензия: проприетарная
- IzPack – Широко используемый набор инструментов для многоплатформенного развертывания приложений (deployments). Лицензия: Apache 2 , рейтинг github’а – 614.
- JitPack – Простой в использовании репозиторий пакетов для GitHub. Собирает Maven / Gradle проекты и публикует их в готовых к использованию пакетах. Лицензия: Apache 2 , рейтинг github’а – 614.
- Launch4j – Преобразует JARs файлы в легковесные и нативные исполнянмые файлы Windows , Лицензия: BSD 3 и MIT.
- Nexus – Усправления бинарными файлами с прокси и кэшированием, Лицензия: проприетарная платная
- packr – Преобразование JARs, assets и JVM в нативные приложения Windows, Linux и Mac OS X, Лицензия: Apache 2.
- Spotify Helios это Docker orchestration платформа для развертывания и управления контейнерами с помощью HTTP API или командной строки. Лицензия: Apache 2 , рейтинг github’а – 952.
3. Инструменты для оптимизации производительности
Библиотеки для оптимизации и решения проблем с производительностью К оглавлению
- Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 4168.
- Dropwizard Metrics – библиотека для замера различных метрик в Java приложении для простого понимания что и как код делает во время продакшена. . Лицензия: Apache 2 , рейтинг github’а – 3188.
- GCViewer Форк Tagtraum GCViewer — небольшой инструмент для подробной визуализации GC (garbage collector) логов (включая G1 collector). Лицензия: GNU Lesser 2.1, рейтинг github’а – 990.
- AdoptOpenJDK Jitwatch Анализатор логов Java HotSpot JIT компилятора, показывающий результаты используя JavaFX интерфейс. Лицензия: BSD 2, рейтинг github’а – 547.
- Naver Pinpoint это APM (Application Performance Management) инструмент мониторинга производительности крупномасштабных распределенных систем, написанных на Java. Создан на основе Google’s Dapper paper.. Лицензия: Apache 2 , рейтинг github’а – 486.
- jHiccup – Логирование и запись проблем с производительностью и потерь скорости у JVM, Лицензия: BSD 2.
- JMH – Microbenchmarking инструмент для JVM, Лицензия: GNU 2.
- LatencyUtils – Утилиты для измерения времени отклика приложения и составления отчетов, Лицензия: BSD 2.
- VisualVM – Визуальный интерфейс, показывающий детальную информацию о запущенных приложениях.Лицензия: GNU 2 with the Classpath Exception.
- JProfiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов
- YourKit Java Profiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов, спец.планы для научных и академических целей
- XRebel – Платный профайлер. Лицензия: Проприетарная платная
4. Анализ исходного кода
К оглавлению
- SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github’а – 655.
- Google Error prone – обнаружение типовых ошибок в Java коде. Лицензия: Apache 2 , рейтинг github’а – 590.
- OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c.. Лицензия: CDDL 1.0, рейтинг github’а – 570.
- Checkstyle – Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
- FindBugs – Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
- jQAssistant – Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
- PMD – Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.
5. Monitoring
Инструменты для мониторинга приложений в production. К оглавлению
- AppDynamics – Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- JavaMelody – Мониторинг производительности и профайлинг, Лицензия: Apache 2.
- jmxtrans – Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
- Kamon – Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
- New Relic – Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
- SPM – Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- Takipi – Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
Инструменты для работы с развертыванием (distribution) приложений в нативные форматы. К оглавлению
- Bintray – Контроль версий для бинарных файлов, так же может использовать вместе с Maven или Gradle и имеет свободный план для открытого ПО, а так же ряд различных бизнес планов, Лицензия: проприетарная платная, есть бесплатная версия для открытых продуктов
- Capsule – это система сборки приложения в один выполняемый JAR файл со всеми артефактами, ресурсами, нативными библиотеками и т.п. Простой и мощный инструмент для packaging и deployment. Толстый JAR на стероидах или “Docker для Java”, который поддерживает JVM-оптимизированные контейнеры, рейтинг github’а – 576. Лицензия: Eclipse Public License v1.0.
- Central Repository – Огромный бинарный репозеторий компонентов, который доступен как свободный сервис для проектов с открытым ПО. Используется Apache Maven и доступно для всех остальных инструментов сборки, Лицензия: проприетарная
- IzPack – Широко используемый набор инструментов для многоплатформенного развертывания приложений (deployments). Лицензия: Apache 2 , рейтинг github’а – 614.
- JitPack – Простой в использовании репозиторий пакетов для GitHub. Собирает Maven / Gradle проекты и публикует их в готовых к использованию пакетах. Лицензия: Apache 2 , рейтинг github’а – 614.
- Launch4j – Преобразует JARs файлы в легковесные и нативные исполнянмые файлы Windows , Лицензия: BSD 3 и MIT.
- Nexus – Усправления бинарными файлами с прокси и кэшированием, Лицензия: проприетарная платная
- packr – Преобразование JARs, assets и JVM в нативные приложения Windows, Linux и Mac OS X, Лицензия: Apache 2.
- Spotify Helios это Docker orchestration платформа для развертывания и управления контейнерами с помощью HTTP API или командной строки. Лицензия: Apache 2 , рейтинг github’а – 952.
3. Инструменты для оптимизации производительности
Библиотеки для оптимизации и решения проблем с производительностью К оглавлению
- Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. Лицензия: Apache 2 , рейтинг github’а – 4168.
- Dropwizard Metrics – библиотека для замера различных метрик в Java приложении для простого понимания что и как код делает во время продакшена. . Лицензия: Apache 2 , рейтинг github’а – 3188.
- GCViewer Форк Tagtraum GCViewer — небольшой инструмент для подробной визуализации GC (garbage collector) логов (включая G1 collector). Лицензия: GNU Lesser 2.1, рейтинг github’а – 990.
- AdoptOpenJDK Jitwatch Анализатор логов Java HotSpot JIT компилятора, показывающий результаты используя JavaFX интерфейс. Лицензия: BSD 2, рейтинг github’а – 547.
- Naver Pinpoint это APM (Application Performance Management) инструмент мониторинга производительности крупномасштабных распределенных систем, написанных на Java. Создан на основе Google’s Dapper paper.. Лицензия: Apache 2 , рейтинг github’а – 486.
- jHiccup – Логирование и запись проблем с производительностью и потерь скорости у JVM, Лицензия: BSD 2.
- JMH – Microbenchmarking инструмент для JVM, Лицензия: GNU 2.
- LatencyUtils – Утилиты для измерения времени отклика приложения и составления отчетов, Лицензия: BSD 2.
- VisualVM – Визуальный интерфейс, показывающий детальную информацию о запущенных приложениях.Лицензия: GNU 2 with the Classpath Exception.
- JProfiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов
- YourKit Java Profiler – Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов, спец.планы для научных и академических целей
- XRebel – Платный профайлер. Лицензия: Проприетарная платная
4. Анализ исходного кода
К оглавлению
- SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github’а – 655.
- Google Error prone – обнаружение типовых ошибок в Java коде. Лицензия: Apache 2 , рейтинг github’а – 590.
- OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c.. Лицензия: CDDL 1.0, рейтинг github’а – 570.
- Checkstyle – Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
- FindBugs – Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
- jQAssistant – Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
- PMD – Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.
5. Monitoring
Инструменты для мониторинга приложений в production. К оглавлению
- AppDynamics – Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- JavaMelody – Мониторинг производительности и профайлинг, Лицензия: Apache 2.
- jmxtrans – Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
- Kamon – Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
- New Relic – Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
- SPM – Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- Takipi – Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
К оглавлению
- SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github’а – 655.
- Google Error prone – обнаружение типовых ошибок в Java коде. Лицензия: Apache 2 , рейтинг github’а – 590.
- OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c.. Лицензия: CDDL 1.0, рейтинг github’а – 570.
- Checkstyle – Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
- FindBugs – Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
- jQAssistant – Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
- PMD – Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.
5. Monitoring
Инструменты для мониторинга приложений в production. К оглавлению
- AppDynamics – Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- JavaMelody – Мониторинг производительности и профайлинг, Лицензия: Apache 2.
- jmxtrans – Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
- Kamon – Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
- New Relic – Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
- SPM – Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
- Takipi – Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
К оглавлению
- Dynamic Code Evolution Virtual Machine (DCE VM) – Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
- DCEVM – Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
- HotswapAgent – Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
- JRebel – Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
- Spring Loaded – Агент для повторой перезагруки классов, Лицензия: Apache 2
7. Прочее
К оглавлению
- Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C.. Лицензия: Apache 2 , рейтинг github’а – 2940.
- Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github’а – 617.
- Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github’а – 514.
Current implementations of the JVM/JDK.
- JDK 9 – Ранний доступ к версии JDK 9. , Лицензия: GNU 2.
- OpenJDK – Oткрытая реализация Java для Linux., Лицензия: GNU 2.
- Zulu OpenJDK – OpenJDK реализация для Windows, Linux и Mac OS X включая Java 8, Лицензия: GNU 2.
- Zulu OpenJDK 9 – Ранний доступ к версии OpenJDK 9 для Windows, Linux и Mac OS X, Лицензия: GNU 2.
VI. Языки программирования и приложения, написанные на Java
1. Языки программирования, написанные на Java
К оглавлению
- Clojure Язык программирования Clojure. . Лицензия: Apache 2 , рейтинг github’а – 4332.
- JetBrains Kotlin Язык программирования Kotlin. Лицензия: Apache 2 , рейтинг github’а – 1621.
- Gocd Основной репозиторий для сборки Go программ . Лицензия: Apache 2 , рейтинг github’а – 1602.
- Groovy core Язык программирования Groovy. Лицензия: Apache 2 , рейтинг github’а – 1327.
- Jphp compiler Jphp Альтернативный вариант Zend PHP для JVM, такой же как JRuby и Jython но только для PHP. Лицензия: Apache 2 , рейтинг github’а – 969.
- Trifork Erjang Виртуальная JVM машина для языка Erlang . Лицензия: Apache 2 , рейтинг github’а – 484.
2. Утилиты для других языков программирования, написанные на Java
К оглавлению
- Go lang idea plugin IDE для языка программирования Goole Go, созданная на основе IntelliJ Platform. Лицензия: Apache 2 , рейтинг github’а – 1717.
- Processing js Портирование Processing библиотеку для работы с видео и изображениями в JavaScript.. Лицензия: MIT , рейтинг github’а – 1696.
- Pysonar2 PySonar2 это система индексирования и получения типов в Python, которая проводить сложный анализ с помощью Sourcegraph сотен тысяч открытых Python репозиториев. Лицензия: GNU GNU AGPLv3, рейтинг github’а – 1654.
3. Javascript
К оглавлению
- Yuicompressor YUI Compressor — это система сжатия JavaScript и CSS файлов, которая удаляет лишние пробелы, безопасно обфуцирует локальные переменные до минимального возможного имени и т. д.. Лицензия: BSD, рейтинг github’а – 1840.
- Google Closure compiler Библиотека проверки JavaScript кода и его оптимизации. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Frontend maven plugin Maven плагин который скачивает и устанавливает Node и NPM локально и запускает NPM install, Grunt, Gulp и/или Karma. Лицензия: Apache 2 , рейтинг github’а – 586.
- Dynjs Среда выполнения ECMAScript для JVM. Лицензия: Apache 2 , рейтинг github’а – 533.
4. Фреймворки для создания парсеров, интерпретаторов и компиляторов кода
К оглавлению
- ANTLR – Многоцелевой полноценный фреймворк для top-down парсинга, Лицензия: BSD 2.
- JavaCC – Более специфичный и простой в обучении, имеет синтаксический предпросмотр, Лицензия: BSD .
5. Приложения и готовые продукты написанные на Java
К оглавлению
- Square Keywhiz – cистема для хранения и управления секретными данными (TLS сертификаты, GPG ключи, API токены, данные доступа к базам данным) . Лицензия: Apache 2 , рейтинг github’а – 979.
- Rundeck это автоматический сервис-планировщик по управлению заданиями, job’aми с вебконсолью, инструментами командной строки и WebAPI. . Лицензия: Apache 2 , рейтинг github’а – 853.
- KeyBox это SSH вебконсоль, которая используется для административного доступа в систему. Лицензия: Apache 2 , рейтинг github’а – 792.
- OpenTripPlanner это свободный планировщик поездок, поддерживает открытые стандартные форматы файлов (GTFS и OpenStreetMap), также включает REST API для планирования путишествий, как и Javascript клиент . Лицензия: Apache 2 , рейтинг github’а – 704.
- Netflix Servo обеспечивает простой интерфейс для получения и публикации параметров приложений Netflix . Лицензия: Apache 2 , рейтинг github’а – 681.
- Jitsi программа, обеспечивающее текстовую, голосовую и видеосвязь с разными протоколами SIP, XMPP/Jabber, AIM/ICQ, IRC, Yahoo! и много других возможностей. Лицензия: Apache 2 , рейтинг github’а – 676.
- Netflix Exhibitor это система для ZooKeeper, обеспечивающая мониторинг, архивирование и восстановление, очистку и визуализацию. Лицензия: Apache 2 , рейтинг github’а – 610.
- Glyptodon Guacamole client – клиент, который позволяет работать с удаленным рабочим столом через браузер без установки какого-либо программного обеспечение. Использует HTML5, JavaScript и Java . Лицензия: MIT , рейтинг github’а – 556.
- Bateman – простая система торговли акциями, которая оптимизирует свои параметры, используя particle swarm оптимизацию. Лицензия: MIT , рейтинг github’а – 543.
- Java repl – реализация Read Eval Print Loop (простой интерактивной среды программирования, которая сразу вычисляет введенные пользователем выражения) для Java. Лицензия: Apache 2 , рейтинг github’а – 536.
- Seyren это оболочка для управления предупреждениями (alert) для Graphite, поддерживает много каналов нотификации: Email, Flowdock, HipChat, HTTP, Hubot, IRCcat, PagerDuty, Pushover, SLF4J, Slack, SNMP, Twilio. Лицензия: Apache 2 , рейтинг github’а – 527.
- Graphhopper это быстрая и эффективно использующий память программа определения лучшего дорожного маршрута на Java. По умолчанию использует данный OpenStreetMap, но существует импорт и из других источников. Лицензия: Apache 2 , рейтинг github’а – 506.
- Ttorrent это Java реализация BitTorrent протокола, BitTorrent tracker и BitTorrent клиента . Лицензия: Apache 2 , рейтинг github’а – 460.
- Geoserver это приложение, написанное на Java, которое используется для обмена и редактирования geo данных. Лицензия: GNU 2.0, рейтинг github’а – 435.
- Languagetool – система стилистической и грамматической проверки текста более чем на 25 разных языках (английский, франц узкий, немецкий, русский, польский и т. д.). Лицензия: GNU Lesser 2.1, рейтинг github’а – 416.
- Apache OpenMeetings – система с открытым кодом для создания видеоконференций, обмена сообщениями и документами компании. Лицензия: Apache 2.
6. Игры, написанные Java
К оглавлению
- Bukkit Мод для Minecraft API. Лицензия: GNU 2, рейтинг github’а – 1600.
- MovingBlocks Terasology Terasology это игра в пиксельном мире, основанная на идеях Minecraft’а. Лицензия: Apache 2 , рейтинг github’а – 1070.
- MinecraftForge Модификации для Minecraft . Лицензия: GNU AGPLv2.1, рейтинг github’а – 981.
- SpongePowered Sponge Forge мод для Minecraft реализующий SpongeAPI. Лицензия: MIT , рейтинг github’а – 803.
- BuildCraft BuildCraft — расширение для Minecraft. Лицензия: Apache 2 , рейтинг github’а – 799.
- Equivalent Exchange 3 pahimar Equivalent-Exchange-3. Моды для Minecraft. Лицензия: Apache 2 , рейтинг github’а – 783.
- SpongePowered SpongeAPI Minecraft плагин API. Лицензия: Apache 2 , рейтинг github’а – 775.
- WorldEdit Редактор игровых карт для Minecraft. Лицензия: GNU Lesser 3, рейтинг github’а – 715.
- Essentials Essentials – Minecraft серверный командный мод — добавлени более 100 команд для использования в игре . Лицензия: GNU 3, рейтинг github’а – 423.
- GlowstoneMC Glowstone Сервер для Bukkit Minecraft. Лицензия: MIT , рейтинг github’а – 421.
- Tribal Trouble – Стратегия в реальном времени на Java. Лицензия: GNU 2, рейтинг github’а – 50.
VII. Прочее
1. Примеры исходного кода на java
К оглавлению
- Java design patterns Очень хорошие примеры и справочник по паттернам разработки. . Лицензия: MIT , рейтинг github’а – 6341.
- Spring projects Spring mvc showcase Примеры, демонстрирующие возможности Spring MVC веб фреймворка. Лицензия: Apache 2 , рейтинг github’а – 1338.
- Javaee7 samples Примеры для Java EE 7 . Лицензия: MIT/CDDL/GPLv2, рейтинг github’а – 989.
- Algorithms Решение для некоторых общих алгоритмических проблем, написанное на Java.. Лицензия: Apache 2 , рейтинг github’а – 983.
- WikiSort Быстрее и стабильные алгоритмы сортировки использующие O(1) памяти. Лицензия: unlicense.org, рейтинг github’а – 953.
- Spring projects Spring petclinic Примеры Spring приложений . Лицензия: Apache 2 , рейтинг github’а – 532.
- Spring projects Spring integration samples Примеры кода и приложений Spring Integration. Лицензия: Apache 2 , рейтинг github’а – 517.
- Java algorithms implementation Коллекция алгоритмов и структур данных, написанных на Java. Лицензия: Apache 2 , рейтинг github’а – 437.
- Jboss developer Jboss eap quickstarts Простые и рабочие примеры с простой демонстрацией JBoss EAP, Java EE 7 и других подобных технологий . Лицензия: Apache 2 , рейтинг github’а – 434.
- Databricks Learning spark Примеры кода для книги Learning Spark. Лицензия: MIT , рейтинг github’а – 412.
- 7guis 7GUIs это проект который рассматривает простоту разработки и полученное юзабилити (usability benchmark) семи типичных GUI задач на разных фреймворках и языках программирования (Java7 +Swing, Clojure+Seesaw, Scala+ScalaFX, Android и т. п.). Задачей сравнить разные подходы к созданию удобного для пользователя GUI. Лицензия: ?, рейтинг github’а – 404.
- Spring projects Spring data jpa examples Примеры использования разных возможностей Spring Data JPA . Лицензия: Apache 2 , рейтинг github’а – 400.
- Modern Java – A Guide to Java 8 – Популярный Java 8 гайд. Лицензия: MIT.
2. Результаты сравнения производительности кода на Java (benchmark)
К оглавлению
- Jvm serializers – бенчмарки и сравнения производительности разных библиотек сериализации в JVM . Лицензия: ?, рейтинг github’а – 970.
- YCSB (Yahoo! Cloud Serving Benchmark) – бэнчмарки (тесты производительности) различных облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 869.
3. Работа с git & github
К оглавлению
- Gitblit Gitblit это свободный Java Git клиент для управления, просмотр и обслуживания Git репозиторий . Лицензия: Apache 2 , рейтинг github’а – 787.
- WhisperSystems BitHub BitHub – экспериментальный сервис по сбору Bitcoin пожертвований и распределении этих пожертвований каждому кто коммитит в GitHub репозитории. Лицензия: ?, рейтинг github’а – 491.
VIII. Resources
1. Communities
Ресурсы для дискуссий и обсуждений (на английском). К оглавлению
- r/java – Subreddit для Java пользователей.
- stackoverflow – Популярная платформа для вопросов/ответов
- vJUG – Virtual Java User Group.
2. Influential Books
Книги которые оказали огромное влияние на Java мир и которые действительно стоят того чтобы их прочитать (на английском). К оглавлению
3. Websites
Полезные сайты. К оглавлению
- Android Arsenal
- Google Java Style
- InfoQ
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- The Java Specialist’ Newsletter
- The Takipi Blog
- TheServerSide.com
- Thoughts On Java
- Vanilla Java
- Vlad Mihalcea on Hibernate
- Voxxed
IX Видео доклады и лекции о Java
- 1. Оптимизация и производительность
- 2. Инструменты и IDE
- 3. Особенности разных языков JVM и версий Java
- 4. Фреймворки Java
- 5. Базы данных, поисковые системы и BigData
- 6. Особенности языка Java
- 6.1 Cериализации
- 6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- 6.3 Aсинхронность и многопоточность
- 6.4 Интеграция
- 6.5 Безопасность, Java Security Model и т.д.
- 6.6 Виртуальная машина Java и особенности реализации JVM
- 6.7 Аспектно-ориентированное программирование
- 6.8 Рефлексия и Invokedynamic
- 6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
- 6.10 Особенности языка Java
- 7. Качество кода и вопросы архитектуры
- 8. Прочее
1. Вопросы оптимизации и производительности
1.1 Производительность и оптимизация
- Сергей Куксенко – “Квантовые” эффекты производительности,
- Сергей Куксенко – Сессия вопросов-ответов о производительности Java,
- Алексей Шипилёв и Сергей Куксенко, Россия – Методология оптимизации производительности,
- Сергей Куксенко, Oracle — Железные счётчики
- Алексей Шипилёв, Oracle — Катехизис java.lang.String – о реализации строк в Java, способы оптимизации работы со строками и ошибки, которые часто допускают при оптимизации работы со строками,
- Алексей Шипилёв — Java Benchmarking: как два таймстампа прочитать!
- Алексей Шипилёв — Java Benchmarking: как два таймстампа записать
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: теория
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: детали
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: ещё детали
- Олег Бунин, Андрей Паньгин, Алексей Рагозин, Олег Анастасьев — Круглый стол. HighLoad
- Алексей Шипилёв, Oracle — Сжимай меня полностью
- Дмитрий Лазаренко — Оптимизация работы JVM в облаке
- Дмитрий Чуйко — Быстрая загрузка ваших классов
- Глеб Смирнов — HotSpot, что ты делаешь?! Ахаха, прекрати!
- Kirill Golodnov — О бесконечно долгой работе дочерних процессов Java-приложения
- Андрей Афанасьев — Оптимизация производительности распределенных приложений…
- Руслан Черёмин — Disruptor и прочие фокусы
- Gleb Smirnov – Side-By-Side Performance Comparisons – что значит “тормозит” и как с этим бороться
- Nikita Salnikov Tarnovski – First steps in GC tuning – проблемы, связанные с производительностью из-за сборщика мусора
1.2 Высоконагруженные приложения (HighLoad)
- Андрей Паньгин — Особенности разработки высоконагруженного сервера на Java
- Алексей Шевчук — Подходы к решению проблем производительности высоконагруженых сервисов
- Роман Елизаров — Миллионы котировок в секунду на чистой Java
- Олег Анастасьев — За гранью возможного (Keynote) – о проблемах при создания Однокласников и решения для высоконагруженных сервисов,
- Андрея Паньгина — Выжимаем из сервера максимум: приемы кеширования и передачи данных на Java – описание приемов создания высоконагруженных систем на Odnoklassniki.ru,
- Alexander Oleynikov — Практический опыт построения API высоконагруженных сервисов – описание создания высоконагруженных систем в Yandex’е,
- Valerii Moisieienko – How to Manage 10K request per second in HA manner – история разработки высоконагруженного приложения на недорогом железе,
1.3 Сборка мусора, утечки памяти и работа с памятью
- Алексей Рагозин — Сборка мусора, битва алгоритмов
- Владимир Долженко — GC: друг или враг?
- Роман Елизаров — Почему GC съедает все моё CPU?
- Никита Сальников-Тарновский, Plumbr — Где моя память, чувак?!
- Глеб Смирнов, Plumbr — Тайны — в наших головах, а не в JVM
- Никита Сальников-Тарновский — Утечки памяти
- Алексей Шипилёв — О чём молчат Heap Dump-ы
- Владимир Воскресенский — Микрохирургия HotSpot
- Александр Макаров — Исследование возможностей и ограничений JVM по оптимизации памяти
- Андрей Паньгин — Кеширование данных вне Java Heap и работа с разделяемой памятью в Java
- Владимир Иванов — G1 Garbage Collector
- Иван Крылов — StructuredArray и ObjectLayout – как JVM представляет объекты и вопросы производительности представления объектов,
- Никита Сальников-Тарновский — Heap, off you go
- Nikita Salnikov-Tarnovski – I bet you have a permgen leak in your application – утечки памяти из-за class load’ов
2. Инструменты и IDE
2.1 IDE и инструменты разработки
- Андрей Зайцев, Дмитрий Нестерук, JetBrains — Инструменты командной разработки
- Николай Чашников — Поддержка Java 8 в IntelliJ IDEA
- Андрей Солнцев — Eclipse vs Intellij IDEA
- Николай Чашников — IntelliJ IDEA изнутри
- Дмитрий Найданов — Play Framework 2.0 в IntelliJ IDEA
- Николай Чашников — Компилятор Java и IDE: взаимовыгодное сотрудничество
- Андрей Чепцов, Барух Садогурский, Антон Архипов — Круглый стол. Инструменты Java-разработчика
- Александр (Шура) Ильин — Анализ покрытия с помощью JCov
- Антон Архипов — JRebel – инструмент, который позволяет «на лету» перезагружать классы, измененные с момента развёртывания приложения.,
- Барух Садогурский — Разработка модулярного софта: добро пожаловать в АД!
- Alexey Alexandrov – All inclusive Jeastic PaaS – описание платформы для облачных вычислений
- Baruch Sadogurskii – Managing Modular Software for your NuGet, C++ and Java Development
- Philip Torchinsky – Интеграция баг-трекера и сервера CI с IntelliJ IDEA
- ladimir Kozhaev – How to write IDE for your DSL in one day
- Евгений Борисов — Power of Gradle
- Sergey Morenets – Gradle 2. Write once, build everywhere – внимание: видео на украинском языке
2.2 Отладка, профилирование, мониторинг
- Алексей Рагозин — Непрерывное профилирование Java-приложений в ходе эксплуатации
- Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками
- Владимир Ситников — Профайлер в каждый дом
- Владимир Красильщик — Мониторинг Java-приложения с многопроцессной архитектурой
- Виталий Трифанов и Дмитрий Цителов — Динамическое обнаружение гонок в многопоточных Java-программах
- Андрей Паньгин — Лучший отладчик — сделанный своими руками
- Андрей Паньгин — Аварийный дамп — черный ящик упавшей JVM
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 2
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 1
- Александр Отенко — О чём молчит профайлер
- Андрей Паньгин — Аварийный дамп — «черный ящик» JVM
- Алексей Рагозин – Диагностические интерфейсы JVM, или Как сделать профайлер своими руками
- Владимир Воскресенский — Практическое применение OSS для анализа Java-приложений — Использование Oracle Solaris Studio для анализа высокопроизводительных Java-приложений
- Алексей Шипилёв — (The Art of) (Java) Performance Benchmarking II
3. Особенности разных языков JVM и версий Java
3.1 Groovy и Grails
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
К оглавлению
- Go lang idea plugin IDE для языка программирования Goole Go, созданная на основе IntelliJ Platform. Лицензия: Apache 2 , рейтинг github’а – 1717.
- Processing js Портирование Processing библиотеку для работы с видео и изображениями в JavaScript.. Лицензия: MIT , рейтинг github’а – 1696.
- Pysonar2 PySonar2 это система индексирования и получения типов в Python, которая проводить сложный анализ с помощью Sourcegraph сотен тысяч открытых Python репозиториев. Лицензия: GNU GNU AGPLv3, рейтинг github’а – 1654.
3. Javascript
К оглавлению
- Yuicompressor YUI Compressor — это система сжатия JavaScript и CSS файлов, которая удаляет лишние пробелы, безопасно обфуцирует локальные переменные до минимального возможного имени и т. д.. Лицензия: BSD, рейтинг github’а – 1840.
- Google Closure compiler Библиотека проверки JavaScript кода и его оптимизации. Лицензия: Apache 2 , рейтинг github’а – 1442.
- Frontend maven plugin Maven плагин который скачивает и устанавливает Node и NPM локально и запускает NPM install, Grunt, Gulp и/или Karma. Лицензия: Apache 2 , рейтинг github’а – 586.
- Dynjs Среда выполнения ECMAScript для JVM. Лицензия: Apache 2 , рейтинг github’а – 533.
4. Фреймворки для создания парсеров, интерпретаторов и компиляторов кода
К оглавлению
- ANTLR – Многоцелевой полноценный фреймворк для top-down парсинга, Лицензия: BSD 2.
- JavaCC – Более специфичный и простой в обучении, имеет синтаксический предпросмотр, Лицензия: BSD .
5. Приложения и готовые продукты написанные на Java
К оглавлению
- Square Keywhiz – cистема для хранения и управления секретными данными (TLS сертификаты, GPG ключи, API токены, данные доступа к базам данным) . Лицензия: Apache 2 , рейтинг github’а – 979.
- Rundeck это автоматический сервис-планировщик по управлению заданиями, job’aми с вебконсолью, инструментами командной строки и WebAPI. . Лицензия: Apache 2 , рейтинг github’а – 853.
- KeyBox это SSH вебконсоль, которая используется для административного доступа в систему. Лицензия: Apache 2 , рейтинг github’а – 792.
- OpenTripPlanner это свободный планировщик поездок, поддерживает открытые стандартные форматы файлов (GTFS и OpenStreetMap), также включает REST API для планирования путишествий, как и Javascript клиент . Лицензия: Apache 2 , рейтинг github’а – 704.
- Netflix Servo обеспечивает простой интерфейс для получения и публикации параметров приложений Netflix . Лицензия: Apache 2 , рейтинг github’а – 681.
- Jitsi программа, обеспечивающее текстовую, голосовую и видеосвязь с разными протоколами SIP, XMPP/Jabber, AIM/ICQ, IRC, Yahoo! и много других возможностей. Лицензия: Apache 2 , рейтинг github’а – 676.
- Netflix Exhibitor это система для ZooKeeper, обеспечивающая мониторинг, архивирование и восстановление, очистку и визуализацию. Лицензия: Apache 2 , рейтинг github’а – 610.
- Glyptodon Guacamole client – клиент, который позволяет работать с удаленным рабочим столом через браузер без установки какого-либо программного обеспечение. Использует HTML5, JavaScript и Java . Лицензия: MIT , рейтинг github’а – 556.
- Bateman – простая система торговли акциями, которая оптимизирует свои параметры, используя particle swarm оптимизацию. Лицензия: MIT , рейтинг github’а – 543.
- Java repl – реализация Read Eval Print Loop (простой интерактивной среды программирования, которая сразу вычисляет введенные пользователем выражения) для Java. Лицензия: Apache 2 , рейтинг github’а – 536.
- Seyren это оболочка для управления предупреждениями (alert) для Graphite, поддерживает много каналов нотификации: Email, Flowdock, HipChat, HTTP, Hubot, IRCcat, PagerDuty, Pushover, SLF4J, Slack, SNMP, Twilio. Лицензия: Apache 2 , рейтинг github’а – 527.
- Graphhopper это быстрая и эффективно использующий память программа определения лучшего дорожного маршрута на Java. По умолчанию использует данный OpenStreetMap, но существует импорт и из других источников. Лицензия: Apache 2 , рейтинг github’а – 506.
- Ttorrent это Java реализация BitTorrent протокола, BitTorrent tracker и BitTorrent клиента . Лицензия: Apache 2 , рейтинг github’а – 460.
- Geoserver это приложение, написанное на Java, которое используется для обмена и редактирования geo данных. Лицензия: GNU 2.0, рейтинг github’а – 435.
- Languagetool – система стилистической и грамматической проверки текста более чем на 25 разных языках (английский, франц узкий, немецкий, русский, польский и т. д.). Лицензия: GNU Lesser 2.1, рейтинг github’а – 416.
- Apache OpenMeetings – система с открытым кодом для создания видеоконференций, обмена сообщениями и документами компании. Лицензия: Apache 2.
6. Игры, написанные Java
К оглавлению
- Bukkit Мод для Minecraft API. Лицензия: GNU 2, рейтинг github’а – 1600.
- MovingBlocks Terasology Terasology это игра в пиксельном мире, основанная на идеях Minecraft’а. Лицензия: Apache 2 , рейтинг github’а – 1070.
- MinecraftForge Модификации для Minecraft . Лицензия: GNU AGPLv2.1, рейтинг github’а – 981.
- SpongePowered Sponge Forge мод для Minecraft реализующий SpongeAPI. Лицензия: MIT , рейтинг github’а – 803.
- BuildCraft BuildCraft — расширение для Minecraft. Лицензия: Apache 2 , рейтинг github’а – 799.
- Equivalent Exchange 3 pahimar Equivalent-Exchange-3. Моды для Minecraft. Лицензия: Apache 2 , рейтинг github’а – 783.
- SpongePowered SpongeAPI Minecraft плагин API. Лицензия: Apache 2 , рейтинг github’а – 775.
- WorldEdit Редактор игровых карт для Minecraft. Лицензия: GNU Lesser 3, рейтинг github’а – 715.
- Essentials Essentials – Minecraft серверный командный мод — добавлени более 100 команд для использования в игре . Лицензия: GNU 3, рейтинг github’а – 423.
- GlowstoneMC Glowstone Сервер для Bukkit Minecraft. Лицензия: MIT , рейтинг github’а – 421.
- Tribal Trouble – Стратегия в реальном времени на Java. Лицензия: GNU 2, рейтинг github’а – 50.
VII. Прочее
1. Примеры исходного кода на java
К оглавлению
- Java design patterns Очень хорошие примеры и справочник по паттернам разработки. . Лицензия: MIT , рейтинг github’а – 6341.
- Spring projects Spring mvc showcase Примеры, демонстрирующие возможности Spring MVC веб фреймворка. Лицензия: Apache 2 , рейтинг github’а – 1338.
- Javaee7 samples Примеры для Java EE 7 . Лицензия: MIT/CDDL/GPLv2, рейтинг github’а – 989.
- Algorithms Решение для некоторых общих алгоритмических проблем, написанное на Java.. Лицензия: Apache 2 , рейтинг github’а – 983.
- WikiSort Быстрее и стабильные алгоритмы сортировки использующие O(1) памяти. Лицензия: unlicense.org, рейтинг github’а – 953.
- Spring projects Spring petclinic Примеры Spring приложений . Лицензия: Apache 2 , рейтинг github’а – 532.
- Spring projects Spring integration samples Примеры кода и приложений Spring Integration. Лицензия: Apache 2 , рейтинг github’а – 517.
- Java algorithms implementation Коллекция алгоритмов и структур данных, написанных на Java. Лицензия: Apache 2 , рейтинг github’а – 437.
- Jboss developer Jboss eap quickstarts Простые и рабочие примеры с простой демонстрацией JBoss EAP, Java EE 7 и других подобных технологий . Лицензия: Apache 2 , рейтинг github’а – 434.
- Databricks Learning spark Примеры кода для книги Learning Spark. Лицензия: MIT , рейтинг github’а – 412.
- 7guis 7GUIs это проект который рассматривает простоту разработки и полученное юзабилити (usability benchmark) семи типичных GUI задач на разных фреймворках и языках программирования (Java7 +Swing, Clojure+Seesaw, Scala+ScalaFX, Android и т. п.). Задачей сравнить разные подходы к созданию удобного для пользователя GUI. Лицензия: ?, рейтинг github’а – 404.
- Spring projects Spring data jpa examples Примеры использования разных возможностей Spring Data JPA . Лицензия: Apache 2 , рейтинг github’а – 400.
- Modern Java – A Guide to Java 8 – Популярный Java 8 гайд. Лицензия: MIT.
2. Результаты сравнения производительности кода на Java (benchmark)
К оглавлению
- Jvm serializers – бенчмарки и сравнения производительности разных библиотек сериализации в JVM . Лицензия: ?, рейтинг github’а – 970.
- YCSB (Yahoo! Cloud Serving Benchmark) – бэнчмарки (тесты производительности) различных облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 869.
3. Работа с git & github
К оглавлению
- Gitblit Gitblit это свободный Java Git клиент для управления, просмотр и обслуживания Git репозиторий . Лицензия: Apache 2 , рейтинг github’а – 787.
- WhisperSystems BitHub BitHub – экспериментальный сервис по сбору Bitcoin пожертвований и распределении этих пожертвований каждому кто коммитит в GitHub репозитории. Лицензия: ?, рейтинг github’а – 491.
VIII. Resources
1. Communities
Ресурсы для дискуссий и обсуждений (на английском). К оглавлению
- r/java – Subreddit для Java пользователей.
- stackoverflow – Популярная платформа для вопросов/ответов
- vJUG – Virtual Java User Group.
2. Influential Books
Книги которые оказали огромное влияние на Java мир и которые действительно стоят того чтобы их прочитать (на английском). К оглавлению
3. Websites
Полезные сайты. К оглавлению
- Android Arsenal
- Google Java Style
- InfoQ
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- The Java Specialist’ Newsletter
- The Takipi Blog
- TheServerSide.com
- Thoughts On Java
- Vanilla Java
- Vlad Mihalcea on Hibernate
- Voxxed
IX Видео доклады и лекции о Java
- 1. Оптимизация и производительность
- 2. Инструменты и IDE
- 3. Особенности разных языков JVM и версий Java
- 4. Фреймворки Java
- 5. Базы данных, поисковые системы и BigData
- 6. Особенности языка Java
- 6.1 Cериализации
- 6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- 6.3 Aсинхронность и многопоточность
- 6.4 Интеграция
- 6.5 Безопасность, Java Security Model и т.д.
- 6.6 Виртуальная машина Java и особенности реализации JVM
- 6.7 Аспектно-ориентированное программирование
- 6.8 Рефлексия и Invokedynamic
- 6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
- 6.10 Особенности языка Java
- 7. Качество кода и вопросы архитектуры
- 8. Прочее
1. Вопросы оптимизации и производительности
1.1 Производительность и оптимизация
- Сергей Куксенко – “Квантовые” эффекты производительности,
- Сергей Куксенко – Сессия вопросов-ответов о производительности Java,
- Алексей Шипилёв и Сергей Куксенко, Россия – Методология оптимизации производительности,
- Сергей Куксенко, Oracle — Железные счётчики
- Алексей Шипилёв, Oracle — Катехизис java.lang.String – о реализации строк в Java, способы оптимизации работы со строками и ошибки, которые часто допускают при оптимизации работы со строками,
- Алексей Шипилёв — Java Benchmarking: как два таймстампа прочитать!
- Алексей Шипилёв — Java Benchmarking: как два таймстампа записать
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: теория
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: детали
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: ещё детали
- Олег Бунин, Андрей Паньгин, Алексей Рагозин, Олег Анастасьев — Круглый стол. HighLoad
- Алексей Шипилёв, Oracle — Сжимай меня полностью
- Дмитрий Лазаренко — Оптимизация работы JVM в облаке
- Дмитрий Чуйко — Быстрая загрузка ваших классов
- Глеб Смирнов — HotSpot, что ты делаешь?! Ахаха, прекрати!
- Kirill Golodnov — О бесконечно долгой работе дочерних процессов Java-приложения
- Андрей Афанасьев — Оптимизация производительности распределенных приложений…
- Руслан Черёмин — Disruptor и прочие фокусы
- Gleb Smirnov – Side-By-Side Performance Comparisons – что значит “тормозит” и как с этим бороться
- Nikita Salnikov Tarnovski – First steps in GC tuning – проблемы, связанные с производительностью из-за сборщика мусора
1.2 Высоконагруженные приложения (HighLoad)
- Андрей Паньгин — Особенности разработки высоконагруженного сервера на Java
- Алексей Шевчук — Подходы к решению проблем производительности высоконагруженых сервисов
- Роман Елизаров — Миллионы котировок в секунду на чистой Java
- Олег Анастасьев — За гранью возможного (Keynote) – о проблемах при создания Однокласников и решения для высоконагруженных сервисов,
- Андрея Паньгина — Выжимаем из сервера максимум: приемы кеширования и передачи данных на Java – описание приемов создания высоконагруженных систем на Odnoklassniki.ru,
- Alexander Oleynikov — Практический опыт построения API высоконагруженных сервисов – описание создания высоконагруженных систем в Yandex’е,
- Valerii Moisieienko – How to Manage 10K request per second in HA manner – история разработки высоконагруженного приложения на недорогом железе,
1.3 Сборка мусора, утечки памяти и работа с памятью
- Алексей Рагозин — Сборка мусора, битва алгоритмов
- Владимир Долженко — GC: друг или враг?
- Роман Елизаров — Почему GC съедает все моё CPU?
- Никита Сальников-Тарновский, Plumbr — Где моя память, чувак?!
- Глеб Смирнов, Plumbr — Тайны — в наших головах, а не в JVM
- Никита Сальников-Тарновский — Утечки памяти
- Алексей Шипилёв — О чём молчат Heap Dump-ы
- Владимир Воскресенский — Микрохирургия HotSpot
- Александр Макаров — Исследование возможностей и ограничений JVM по оптимизации памяти
- Андрей Паньгин — Кеширование данных вне Java Heap и работа с разделяемой памятью в Java
- Владимир Иванов — G1 Garbage Collector
- Иван Крылов — StructuredArray и ObjectLayout – как JVM представляет объекты и вопросы производительности представления объектов,
- Никита Сальников-Тарновский — Heap, off you go
- Nikita Salnikov-Tarnovski – I bet you have a permgen leak in your application – утечки памяти из-за class load’ов
2. Инструменты и IDE
2.1 IDE и инструменты разработки
- Андрей Зайцев, Дмитрий Нестерук, JetBrains — Инструменты командной разработки
- Николай Чашников — Поддержка Java 8 в IntelliJ IDEA
- Андрей Солнцев — Eclipse vs Intellij IDEA
- Николай Чашников — IntelliJ IDEA изнутри
- Дмитрий Найданов — Play Framework 2.0 в IntelliJ IDEA
- Николай Чашников — Компилятор Java и IDE: взаимовыгодное сотрудничество
- Андрей Чепцов, Барух Садогурский, Антон Архипов — Круглый стол. Инструменты Java-разработчика
- Александр (Шура) Ильин — Анализ покрытия с помощью JCov
- Антон Архипов — JRebel – инструмент, который позволяет «на лету» перезагружать классы, измененные с момента развёртывания приложения.,
- Барух Садогурский — Разработка модулярного софта: добро пожаловать в АД!
- Alexey Alexandrov – All inclusive Jeastic PaaS – описание платформы для облачных вычислений
- Baruch Sadogurskii – Managing Modular Software for your NuGet, C++ and Java Development
- Philip Torchinsky – Интеграция баг-трекера и сервера CI с IntelliJ IDEA
- ladimir Kozhaev – How to write IDE for your DSL in one day
- Евгений Борисов — Power of Gradle
- Sergey Morenets – Gradle 2. Write once, build everywhere – внимание: видео на украинском языке
2.2 Отладка, профилирование, мониторинг
- Алексей Рагозин — Непрерывное профилирование Java-приложений в ходе эксплуатации
- Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками
- Владимир Ситников — Профайлер в каждый дом
- Владимир Красильщик — Мониторинг Java-приложения с многопроцессной архитектурой
- Виталий Трифанов и Дмитрий Цителов — Динамическое обнаружение гонок в многопоточных Java-программах
- Андрей Паньгин — Лучший отладчик — сделанный своими руками
- Андрей Паньгин — Аварийный дамп — черный ящик упавшей JVM
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 2
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 1
- Александр Отенко — О чём молчит профайлер
- Андрей Паньгин — Аварийный дамп — «черный ящик» JVM
- Алексей Рагозин – Диагностические интерфейсы JVM, или Как сделать профайлер своими руками
- Владимир Воскресенский — Практическое применение OSS для анализа Java-приложений — Использование Oracle Solaris Studio для анализа высокопроизводительных Java-приложений
- Алексей Шипилёв — (The Art of) (Java) Performance Benchmarking II
3. Особенности разных языков JVM и версий Java
3.1 Groovy и Grails
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
К оглавлению
- ANTLR – Многоцелевой полноценный фреймворк для top-down парсинга, Лицензия: BSD 2.
- JavaCC – Более специфичный и простой в обучении, имеет синтаксический предпросмотр, Лицензия: BSD .
5. Приложения и готовые продукты написанные на Java
К оглавлению
- Square Keywhiz – cистема для хранения и управления секретными данными (TLS сертификаты, GPG ключи, API токены, данные доступа к базам данным) . Лицензия: Apache 2 , рейтинг github’а – 979.
- Rundeck это автоматический сервис-планировщик по управлению заданиями, job’aми с вебконсолью, инструментами командной строки и WebAPI. . Лицензия: Apache 2 , рейтинг github’а – 853.
- KeyBox это SSH вебконсоль, которая используется для административного доступа в систему. Лицензия: Apache 2 , рейтинг github’а – 792.
- OpenTripPlanner это свободный планировщик поездок, поддерживает открытые стандартные форматы файлов (GTFS и OpenStreetMap), также включает REST API для планирования путишествий, как и Javascript клиент . Лицензия: Apache 2 , рейтинг github’а – 704.
- Netflix Servo обеспечивает простой интерфейс для получения и публикации параметров приложений Netflix . Лицензия: Apache 2 , рейтинг github’а – 681.
- Jitsi программа, обеспечивающее текстовую, голосовую и видеосвязь с разными протоколами SIP, XMPP/Jabber, AIM/ICQ, IRC, Yahoo! и много других возможностей. Лицензия: Apache 2 , рейтинг github’а – 676.
- Netflix Exhibitor это система для ZooKeeper, обеспечивающая мониторинг, архивирование и восстановление, очистку и визуализацию. Лицензия: Apache 2 , рейтинг github’а – 610.
- Glyptodon Guacamole client – клиент, который позволяет работать с удаленным рабочим столом через браузер без установки какого-либо программного обеспечение. Использует HTML5, JavaScript и Java . Лицензия: MIT , рейтинг github’а – 556.
- Bateman – простая система торговли акциями, которая оптимизирует свои параметры, используя particle swarm оптимизацию. Лицензия: MIT , рейтинг github’а – 543.
- Java repl – реализация Read Eval Print Loop (простой интерактивной среды программирования, которая сразу вычисляет введенные пользователем выражения) для Java. Лицензия: Apache 2 , рейтинг github’а – 536.
- Seyren это оболочка для управления предупреждениями (alert) для Graphite, поддерживает много каналов нотификации: Email, Flowdock, HipChat, HTTP, Hubot, IRCcat, PagerDuty, Pushover, SLF4J, Slack, SNMP, Twilio. Лицензия: Apache 2 , рейтинг github’а – 527.
- Graphhopper это быстрая и эффективно использующий память программа определения лучшего дорожного маршрута на Java. По умолчанию использует данный OpenStreetMap, но существует импорт и из других источников. Лицензия: Apache 2 , рейтинг github’а – 506.
- Ttorrent это Java реализация BitTorrent протокола, BitTorrent tracker и BitTorrent клиента . Лицензия: Apache 2 , рейтинг github’а – 460.
- Geoserver это приложение, написанное на Java, которое используется для обмена и редактирования geo данных. Лицензия: GNU 2.0, рейтинг github’а – 435.
- Languagetool – система стилистической и грамматической проверки текста более чем на 25 разных языках (английский, франц узкий, немецкий, русский, польский и т. д.). Лицензия: GNU Lesser 2.1, рейтинг github’а – 416.
- Apache OpenMeetings – система с открытым кодом для создания видеоконференций, обмена сообщениями и документами компании. Лицензия: Apache 2.
6. Игры, написанные Java
К оглавлению
- Bukkit Мод для Minecraft API. Лицензия: GNU 2, рейтинг github’а – 1600.
- MovingBlocks Terasology Terasology это игра в пиксельном мире, основанная на идеях Minecraft’а. Лицензия: Apache 2 , рейтинг github’а – 1070.
- MinecraftForge Модификации для Minecraft . Лицензия: GNU AGPLv2.1, рейтинг github’а – 981.
- SpongePowered Sponge Forge мод для Minecraft реализующий SpongeAPI. Лицензия: MIT , рейтинг github’а – 803.
- BuildCraft BuildCraft — расширение для Minecraft. Лицензия: Apache 2 , рейтинг github’а – 799.
- Equivalent Exchange 3 pahimar Equivalent-Exchange-3. Моды для Minecraft. Лицензия: Apache 2 , рейтинг github’а – 783.
- SpongePowered SpongeAPI Minecraft плагин API. Лицензия: Apache 2 , рейтинг github’а – 775.
- WorldEdit Редактор игровых карт для Minecraft. Лицензия: GNU Lesser 3, рейтинг github’а – 715.
- Essentials Essentials – Minecraft серверный командный мод — добавлени более 100 команд для использования в игре . Лицензия: GNU 3, рейтинг github’а – 423.
- GlowstoneMC Glowstone Сервер для Bukkit Minecraft. Лицензия: MIT , рейтинг github’а – 421.
- Tribal Trouble – Стратегия в реальном времени на Java. Лицензия: GNU 2, рейтинг github’а – 50.
VII. Прочее
1. Примеры исходного кода на java
К оглавлению
- Java design patterns Очень хорошие примеры и справочник по паттернам разработки. . Лицензия: MIT , рейтинг github’а – 6341.
- Spring projects Spring mvc showcase Примеры, демонстрирующие возможности Spring MVC веб фреймворка. Лицензия: Apache 2 , рейтинг github’а – 1338.
- Javaee7 samples Примеры для Java EE 7 . Лицензия: MIT/CDDL/GPLv2, рейтинг github’а – 989.
- Algorithms Решение для некоторых общих алгоритмических проблем, написанное на Java.. Лицензия: Apache 2 , рейтинг github’а – 983.
- WikiSort Быстрее и стабильные алгоритмы сортировки использующие O(1) памяти. Лицензия: unlicense.org, рейтинг github’а – 953.
- Spring projects Spring petclinic Примеры Spring приложений . Лицензия: Apache 2 , рейтинг github’а – 532.
- Spring projects Spring integration samples Примеры кода и приложений Spring Integration. Лицензия: Apache 2 , рейтинг github’а – 517.
- Java algorithms implementation Коллекция алгоритмов и структур данных, написанных на Java. Лицензия: Apache 2 , рейтинг github’а – 437.
- Jboss developer Jboss eap quickstarts Простые и рабочие примеры с простой демонстрацией JBoss EAP, Java EE 7 и других подобных технологий . Лицензия: Apache 2 , рейтинг github’а – 434.
- Databricks Learning spark Примеры кода для книги Learning Spark. Лицензия: MIT , рейтинг github’а – 412.
- 7guis 7GUIs это проект который рассматривает простоту разработки и полученное юзабилити (usability benchmark) семи типичных GUI задач на разных фреймворках и языках программирования (Java7 +Swing, Clojure+Seesaw, Scala+ScalaFX, Android и т. п.). Задачей сравнить разные подходы к созданию удобного для пользователя GUI. Лицензия: ?, рейтинг github’а – 404.
- Spring projects Spring data jpa examples Примеры использования разных возможностей Spring Data JPA . Лицензия: Apache 2 , рейтинг github’а – 400.
- Modern Java – A Guide to Java 8 – Популярный Java 8 гайд. Лицензия: MIT.
2. Результаты сравнения производительности кода на Java (benchmark)
К оглавлению
- Jvm serializers – бенчмарки и сравнения производительности разных библиотек сериализации в JVM . Лицензия: ?, рейтинг github’а – 970.
- YCSB (Yahoo! Cloud Serving Benchmark) – бэнчмарки (тесты производительности) различных облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 869.
3. Работа с git & github
К оглавлению
- Gitblit Gitblit это свободный Java Git клиент для управления, просмотр и обслуживания Git репозиторий . Лицензия: Apache 2 , рейтинг github’а – 787.
- WhisperSystems BitHub BitHub – экспериментальный сервис по сбору Bitcoin пожертвований и распределении этих пожертвований каждому кто коммитит в GitHub репозитории. Лицензия: ?, рейтинг github’а – 491.
VIII. Resources
1. Communities
Ресурсы для дискуссий и обсуждений (на английском). К оглавлению
- r/java – Subreddit для Java пользователей.
- stackoverflow – Популярная платформа для вопросов/ответов
- vJUG – Virtual Java User Group.
2. Influential Books
Книги которые оказали огромное влияние на Java мир и которые действительно стоят того чтобы их прочитать (на английском). К оглавлению
3. Websites
Полезные сайты. К оглавлению
- Android Arsenal
- Google Java Style
- InfoQ
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- The Java Specialist’ Newsletter
- The Takipi Blog
- TheServerSide.com
- Thoughts On Java
- Vanilla Java
- Vlad Mihalcea on Hibernate
- Voxxed
IX Видео доклады и лекции о Java
- 1. Оптимизация и производительность
- 2. Инструменты и IDE
- 3. Особенности разных языков JVM и версий Java
- 4. Фреймворки Java
- 5. Базы данных, поисковые системы и BigData
- 6. Особенности языка Java
- 6.1 Cериализации
- 6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- 6.3 Aсинхронность и многопоточность
- 6.4 Интеграция
- 6.5 Безопасность, Java Security Model и т.д.
- 6.6 Виртуальная машина Java и особенности реализации JVM
- 6.7 Аспектно-ориентированное программирование
- 6.8 Рефлексия и Invokedynamic
- 6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
- 6.10 Особенности языка Java
- 7. Качество кода и вопросы архитектуры
- 8. Прочее
1. Вопросы оптимизации и производительности
1.1 Производительность и оптимизация
- Сергей Куксенко – “Квантовые” эффекты производительности,
- Сергей Куксенко – Сессия вопросов-ответов о производительности Java,
- Алексей Шипилёв и Сергей Куксенко, Россия – Методология оптимизации производительности,
- Сергей Куксенко, Oracle — Железные счётчики
- Алексей Шипилёв, Oracle — Катехизис java.lang.String – о реализации строк в Java, способы оптимизации работы со строками и ошибки, которые часто допускают при оптимизации работы со строками,
- Алексей Шипилёв — Java Benchmarking: как два таймстампа прочитать!
- Алексей Шипилёв — Java Benchmarking: как два таймстампа записать
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: теория
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: детали
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: ещё детали
- Олег Бунин, Андрей Паньгин, Алексей Рагозин, Олег Анастасьев — Круглый стол. HighLoad
- Алексей Шипилёв, Oracle — Сжимай меня полностью
- Дмитрий Лазаренко — Оптимизация работы JVM в облаке
- Дмитрий Чуйко — Быстрая загрузка ваших классов
- Глеб Смирнов — HotSpot, что ты делаешь?! Ахаха, прекрати!
- Kirill Golodnov — О бесконечно долгой работе дочерних процессов Java-приложения
- Андрей Афанасьев — Оптимизация производительности распределенных приложений…
- Руслан Черёмин — Disruptor и прочие фокусы
- Gleb Smirnov – Side-By-Side Performance Comparisons – что значит “тормозит” и как с этим бороться
- Nikita Salnikov Tarnovski – First steps in GC tuning – проблемы, связанные с производительностью из-за сборщика мусора
1.2 Высоконагруженные приложения (HighLoad)
- Андрей Паньгин — Особенности разработки высоконагруженного сервера на Java
- Алексей Шевчук — Подходы к решению проблем производительности высоконагруженых сервисов
- Роман Елизаров — Миллионы котировок в секунду на чистой Java
- Олег Анастасьев — За гранью возможного (Keynote) – о проблемах при создания Однокласников и решения для высоконагруженных сервисов,
- Андрея Паньгина — Выжимаем из сервера максимум: приемы кеширования и передачи данных на Java – описание приемов создания высоконагруженных систем на Odnoklassniki.ru,
- Alexander Oleynikov — Практический опыт построения API высоконагруженных сервисов – описание создания высоконагруженных систем в Yandex’е,
- Valerii Moisieienko – How to Manage 10K request per second in HA manner – история разработки высоконагруженного приложения на недорогом железе,
1.3 Сборка мусора, утечки памяти и работа с памятью
- Алексей Рагозин — Сборка мусора, битва алгоритмов
- Владимир Долженко — GC: друг или враг?
- Роман Елизаров — Почему GC съедает все моё CPU?
- Никита Сальников-Тарновский, Plumbr — Где моя память, чувак?!
- Глеб Смирнов, Plumbr — Тайны — в наших головах, а не в JVM
- Никита Сальников-Тарновский — Утечки памяти
- Алексей Шипилёв — О чём молчат Heap Dump-ы
- Владимир Воскресенский — Микрохирургия HotSpot
- Александр Макаров — Исследование возможностей и ограничений JVM по оптимизации памяти
- Андрей Паньгин — Кеширование данных вне Java Heap и работа с разделяемой памятью в Java
- Владимир Иванов — G1 Garbage Collector
- Иван Крылов — StructuredArray и ObjectLayout – как JVM представляет объекты и вопросы производительности представления объектов,
- Никита Сальников-Тарновский — Heap, off you go
- Nikita Salnikov-Tarnovski – I bet you have a permgen leak in your application – утечки памяти из-за class load’ов
2. Инструменты и IDE
2.1 IDE и инструменты разработки
- Андрей Зайцев, Дмитрий Нестерук, JetBrains — Инструменты командной разработки
- Николай Чашников — Поддержка Java 8 в IntelliJ IDEA
- Андрей Солнцев — Eclipse vs Intellij IDEA
- Николай Чашников — IntelliJ IDEA изнутри
- Дмитрий Найданов — Play Framework 2.0 в IntelliJ IDEA
- Николай Чашников — Компилятор Java и IDE: взаимовыгодное сотрудничество
- Андрей Чепцов, Барух Садогурский, Антон Архипов — Круглый стол. Инструменты Java-разработчика
- Александр (Шура) Ильин — Анализ покрытия с помощью JCov
- Антон Архипов — JRebel – инструмент, который позволяет «на лету» перезагружать классы, измененные с момента развёртывания приложения.,
- Барух Садогурский — Разработка модулярного софта: добро пожаловать в АД!
- Alexey Alexandrov – All inclusive Jeastic PaaS – описание платформы для облачных вычислений
- Baruch Sadogurskii – Managing Modular Software for your NuGet, C++ and Java Development
- Philip Torchinsky – Интеграция баг-трекера и сервера CI с IntelliJ IDEA
- ladimir Kozhaev – How to write IDE for your DSL in one day
- Евгений Борисов — Power of Gradle
- Sergey Morenets – Gradle 2. Write once, build everywhere – внимание: видео на украинском языке
2.2 Отладка, профилирование, мониторинг
- Алексей Рагозин — Непрерывное профилирование Java-приложений в ходе эксплуатации
- Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками
- Владимир Ситников — Профайлер в каждый дом
- Владимир Красильщик — Мониторинг Java-приложения с многопроцессной архитектурой
- Виталий Трифанов и Дмитрий Цителов — Динамическое обнаружение гонок в многопоточных Java-программах
- Андрей Паньгин — Лучший отладчик — сделанный своими руками
- Андрей Паньгин — Аварийный дамп — черный ящик упавшей JVM
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 2
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 1
- Александр Отенко — О чём молчит профайлер
- Андрей Паньгин — Аварийный дамп — «черный ящик» JVM
- Алексей Рагозин – Диагностические интерфейсы JVM, или Как сделать профайлер своими руками
- Владимир Воскресенский — Практическое применение OSS для анализа Java-приложений — Использование Oracle Solaris Studio для анализа высокопроизводительных Java-приложений
- Алексей Шипилёв — (The Art of) (Java) Performance Benchmarking II
3. Особенности разных языков JVM и версий Java
3.1 Groovy и Grails
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
К оглавлению
- Bukkit Мод для Minecraft API. Лицензия: GNU 2, рейтинг github’а – 1600.
- MovingBlocks Terasology Terasology это игра в пиксельном мире, основанная на идеях Minecraft’а. Лицензия: Apache 2 , рейтинг github’а – 1070.
- MinecraftForge Модификации для Minecraft . Лицензия: GNU AGPLv2.1, рейтинг github’а – 981.
- SpongePowered Sponge Forge мод для Minecraft реализующий SpongeAPI. Лицензия: MIT , рейтинг github’а – 803.
- BuildCraft BuildCraft — расширение для Minecraft. Лицензия: Apache 2 , рейтинг github’а – 799.
- Equivalent Exchange 3 pahimar Equivalent-Exchange-3. Моды для Minecraft. Лицензия: Apache 2 , рейтинг github’а – 783.
- SpongePowered SpongeAPI Minecraft плагин API. Лицензия: Apache 2 , рейтинг github’а – 775.
- WorldEdit Редактор игровых карт для Minecraft. Лицензия: GNU Lesser 3, рейтинг github’а – 715.
- Essentials Essentials – Minecraft серверный командный мод — добавлени более 100 команд для использования в игре . Лицензия: GNU 3, рейтинг github’а – 423.
- GlowstoneMC Glowstone Сервер для Bukkit Minecraft. Лицензия: MIT , рейтинг github’а – 421.
- Tribal Trouble – Стратегия в реальном времени на Java. Лицензия: GNU 2, рейтинг github’а – 50.
VII. Прочее
1. Примеры исходного кода на java
К оглавлению
- Java design patterns Очень хорошие примеры и справочник по паттернам разработки. . Лицензия: MIT , рейтинг github’а – 6341.
- Spring projects Spring mvc showcase Примеры, демонстрирующие возможности Spring MVC веб фреймворка. Лицензия: Apache 2 , рейтинг github’а – 1338.
- Javaee7 samples Примеры для Java EE 7 . Лицензия: MIT/CDDL/GPLv2, рейтинг github’а – 989.
- Algorithms Решение для некоторых общих алгоритмических проблем, написанное на Java.. Лицензия: Apache 2 , рейтинг github’а – 983.
- WikiSort Быстрее и стабильные алгоритмы сортировки использующие O(1) памяти. Лицензия: unlicense.org, рейтинг github’а – 953.
- Spring projects Spring petclinic Примеры Spring приложений . Лицензия: Apache 2 , рейтинг github’а – 532.
- Spring projects Spring integration samples Примеры кода и приложений Spring Integration. Лицензия: Apache 2 , рейтинг github’а – 517.
- Java algorithms implementation Коллекция алгоритмов и структур данных, написанных на Java. Лицензия: Apache 2 , рейтинг github’а – 437.
- Jboss developer Jboss eap quickstarts Простые и рабочие примеры с простой демонстрацией JBoss EAP, Java EE 7 и других подобных технологий . Лицензия: Apache 2 , рейтинг github’а – 434.
- Databricks Learning spark Примеры кода для книги Learning Spark. Лицензия: MIT , рейтинг github’а – 412.
- 7guis 7GUIs это проект который рассматривает простоту разработки и полученное юзабилити (usability benchmark) семи типичных GUI задач на разных фреймворках и языках программирования (Java7 +Swing, Clojure+Seesaw, Scala+ScalaFX, Android и т. п.). Задачей сравнить разные подходы к созданию удобного для пользователя GUI. Лицензия: ?, рейтинг github’а – 404.
- Spring projects Spring data jpa examples Примеры использования разных возможностей Spring Data JPA . Лицензия: Apache 2 , рейтинг github’а – 400.
- Modern Java – A Guide to Java 8 – Популярный Java 8 гайд. Лицензия: MIT.
2. Результаты сравнения производительности кода на Java (benchmark)
К оглавлению
- Jvm serializers – бенчмарки и сравнения производительности разных библиотек сериализации в JVM . Лицензия: ?, рейтинг github’а – 970.
- YCSB (Yahoo! Cloud Serving Benchmark) – бэнчмарки (тесты производительности) различных облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 869.
3. Работа с git & github
К оглавлению
- Gitblit Gitblit это свободный Java Git клиент для управления, просмотр и обслуживания Git репозиторий . Лицензия: Apache 2 , рейтинг github’а – 787.
- WhisperSystems BitHub BitHub – экспериментальный сервис по сбору Bitcoin пожертвований и распределении этих пожертвований каждому кто коммитит в GitHub репозитории. Лицензия: ?, рейтинг github’а – 491.
VIII. Resources
1. Communities
Ресурсы для дискуссий и обсуждений (на английском). К оглавлению
- r/java – Subreddit для Java пользователей.
- stackoverflow – Популярная платформа для вопросов/ответов
- vJUG – Virtual Java User Group.
2. Influential Books
Книги которые оказали огромное влияние на Java мир и которые действительно стоят того чтобы их прочитать (на английском). К оглавлению
3. Websites
Полезные сайты. К оглавлению
- Android Arsenal
- Google Java Style
- InfoQ
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- The Java Specialist’ Newsletter
- The Takipi Blog
- TheServerSide.com
- Thoughts On Java
- Vanilla Java
- Vlad Mihalcea on Hibernate
- Voxxed
IX Видео доклады и лекции о Java
- 1. Оптимизация и производительность
- 2. Инструменты и IDE
- 3. Особенности разных языков JVM и версий Java
- 4. Фреймворки Java
- 5. Базы данных, поисковые системы и BigData
- 6. Особенности языка Java
- 6.1 Cериализации
- 6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- 6.3 Aсинхронность и многопоточность
- 6.4 Интеграция
- 6.5 Безопасность, Java Security Model и т.д.
- 6.6 Виртуальная машина Java и особенности реализации JVM
- 6.7 Аспектно-ориентированное программирование
- 6.8 Рефлексия и Invokedynamic
- 6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
- 6.10 Особенности языка Java
- 7. Качество кода и вопросы архитектуры
- 8. Прочее
1. Вопросы оптимизации и производительности
1.1 Производительность и оптимизация
- Сергей Куксенко – “Квантовые” эффекты производительности,
- Сергей Куксенко – Сессия вопросов-ответов о производительности Java,
- Алексей Шипилёв и Сергей Куксенко, Россия – Методология оптимизации производительности,
- Сергей Куксенко, Oracle — Железные счётчики
- Алексей Шипилёв, Oracle — Катехизис java.lang.String – о реализации строк в Java, способы оптимизации работы со строками и ошибки, которые часто допускают при оптимизации работы со строками,
- Алексей Шипилёв — Java Benchmarking: как два таймстампа прочитать!
- Алексей Шипилёв — Java Benchmarking: как два таймстампа записать
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: теория
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: детали
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: ещё детали
- Олег Бунин, Андрей Паньгин, Алексей Рагозин, Олег Анастасьев — Круглый стол. HighLoad
- Алексей Шипилёв, Oracle — Сжимай меня полностью
- Дмитрий Лазаренко — Оптимизация работы JVM в облаке
- Дмитрий Чуйко — Быстрая загрузка ваших классов
- Глеб Смирнов — HotSpot, что ты делаешь?! Ахаха, прекрати!
- Kirill Golodnov — О бесконечно долгой работе дочерних процессов Java-приложения
- Андрей Афанасьев — Оптимизация производительности распределенных приложений…
- Руслан Черёмин — Disruptor и прочие фокусы
- Gleb Smirnov – Side-By-Side Performance Comparisons – что значит “тормозит” и как с этим бороться
- Nikita Salnikov Tarnovski – First steps in GC tuning – проблемы, связанные с производительностью из-за сборщика мусора
1.2 Высоконагруженные приложения (HighLoad)
- Андрей Паньгин — Особенности разработки высоконагруженного сервера на Java
- Алексей Шевчук — Подходы к решению проблем производительности высоконагруженых сервисов
- Роман Елизаров — Миллионы котировок в секунду на чистой Java
- Олег Анастасьев — За гранью возможного (Keynote) – о проблемах при создания Однокласников и решения для высоконагруженных сервисов,
- Андрея Паньгина — Выжимаем из сервера максимум: приемы кеширования и передачи данных на Java – описание приемов создания высоконагруженных систем на Odnoklassniki.ru,
- Alexander Oleynikov — Практический опыт построения API высоконагруженных сервисов – описание создания высоконагруженных систем в Yandex’е,
- Valerii Moisieienko – How to Manage 10K request per second in HA manner – история разработки высоконагруженного приложения на недорогом железе,
1.3 Сборка мусора, утечки памяти и работа с памятью
- Алексей Рагозин — Сборка мусора, битва алгоритмов
- Владимир Долженко — GC: друг или враг?
- Роман Елизаров — Почему GC съедает все моё CPU?
- Никита Сальников-Тарновский, Plumbr — Где моя память, чувак?!
- Глеб Смирнов, Plumbr — Тайны — в наших головах, а не в JVM
- Никита Сальников-Тарновский — Утечки памяти
- Алексей Шипилёв — О чём молчат Heap Dump-ы
- Владимир Воскресенский — Микрохирургия HotSpot
- Александр Макаров — Исследование возможностей и ограничений JVM по оптимизации памяти
- Андрей Паньгин — Кеширование данных вне Java Heap и работа с разделяемой памятью в Java
- Владимир Иванов — G1 Garbage Collector
- Иван Крылов — StructuredArray и ObjectLayout – как JVM представляет объекты и вопросы производительности представления объектов,
- Никита Сальников-Тарновский — Heap, off you go
- Nikita Salnikov-Tarnovski – I bet you have a permgen leak in your application – утечки памяти из-за class load’ов
2. Инструменты и IDE
2.1 IDE и инструменты разработки
- Андрей Зайцев, Дмитрий Нестерук, JetBrains — Инструменты командной разработки
- Николай Чашников — Поддержка Java 8 в IntelliJ IDEA
- Андрей Солнцев — Eclipse vs Intellij IDEA
- Николай Чашников — IntelliJ IDEA изнутри
- Дмитрий Найданов — Play Framework 2.0 в IntelliJ IDEA
- Николай Чашников — Компилятор Java и IDE: взаимовыгодное сотрудничество
- Андрей Чепцов, Барух Садогурский, Антон Архипов — Круглый стол. Инструменты Java-разработчика
- Александр (Шура) Ильин — Анализ покрытия с помощью JCov
- Антон Архипов — JRebel – инструмент, который позволяет «на лету» перезагружать классы, измененные с момента развёртывания приложения.,
- Барух Садогурский — Разработка модулярного софта: добро пожаловать в АД!
- Alexey Alexandrov – All inclusive Jeastic PaaS – описание платформы для облачных вычислений
- Baruch Sadogurskii – Managing Modular Software for your NuGet, C++ and Java Development
- Philip Torchinsky – Интеграция баг-трекера и сервера CI с IntelliJ IDEA
- ladimir Kozhaev – How to write IDE for your DSL in one day
- Евгений Борисов — Power of Gradle
- Sergey Morenets – Gradle 2. Write once, build everywhere – внимание: видео на украинском языке
2.2 Отладка, профилирование, мониторинг
- Алексей Рагозин — Непрерывное профилирование Java-приложений в ходе эксплуатации
- Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками
- Владимир Ситников — Профайлер в каждый дом
- Владимир Красильщик — Мониторинг Java-приложения с многопроцессной архитектурой
- Виталий Трифанов и Дмитрий Цителов — Динамическое обнаружение гонок в многопоточных Java-программах
- Андрей Паньгин — Лучший отладчик — сделанный своими руками
- Андрей Паньгин — Аварийный дамп — черный ящик упавшей JVM
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 2
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 1
- Александр Отенко — О чём молчит профайлер
- Андрей Паньгин — Аварийный дамп — «черный ящик» JVM
- Алексей Рагозин – Диагностические интерфейсы JVM, или Как сделать профайлер своими руками
- Владимир Воскресенский — Практическое применение OSS для анализа Java-приложений — Использование Oracle Solaris Studio для анализа высокопроизводительных Java-приложений
- Алексей Шипилёв — (The Art of) (Java) Performance Benchmarking II
3. Особенности разных языков JVM и версий Java
3.1 Groovy и Grails
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
К оглавлению
- Jvm serializers – бенчмарки и сравнения производительности разных библиотек сериализации в JVM . Лицензия: ?, рейтинг github’а – 970.
- YCSB (Yahoo! Cloud Serving Benchmark) – бэнчмарки (тесты производительности) различных облачных сервисов. Лицензия: Apache 2 , рейтинг github’а – 869.
3. Работа с git & github
К оглавлению
- Gitblit Gitblit это свободный Java Git клиент для управления, просмотр и обслуживания Git репозиторий . Лицензия: Apache 2 , рейтинг github’а – 787.
- WhisperSystems BitHub BitHub – экспериментальный сервис по сбору Bitcoin пожертвований и распределении этих пожертвований каждому кто коммитит в GitHub репозитории. Лицензия: ?, рейтинг github’а – 491.
VIII. Resources
1. Communities
Ресурсы для дискуссий и обсуждений (на английском). К оглавлению
- r/java – Subreddit для Java пользователей.
- stackoverflow – Популярная платформа для вопросов/ответов
- vJUG – Virtual Java User Group.
2. Influential Books
Книги которые оказали огромное влияние на Java мир и которые действительно стоят того чтобы их прочитать (на английском). К оглавлению
3. Websites
Полезные сайты. К оглавлению
- Android Arsenal
- Google Java Style
- InfoQ
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- The Java Specialist’ Newsletter
- The Takipi Blog
- TheServerSide.com
- Thoughts On Java
- Vanilla Java
- Vlad Mihalcea on Hibernate
- Voxxed
IX Видео доклады и лекции о Java
- 1. Оптимизация и производительность
- 2. Инструменты и IDE
- 3. Особенности разных языков JVM и версий Java
- 4. Фреймворки Java
- 5. Базы данных, поисковые системы и BigData
- 6. Особенности языка Java
- 6.1 Cериализации
- 6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- 6.3 Aсинхронность и многопоточность
- 6.4 Интеграция
- 6.5 Безопасность, Java Security Model и т.д.
- 6.6 Виртуальная машина Java и особенности реализации JVM
- 6.7 Аспектно-ориентированное программирование
- 6.8 Рефлексия и Invokedynamic
- 6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
- 6.10 Особенности языка Java
- 7. Качество кода и вопросы архитектуры
- 8. Прочее
1. Вопросы оптимизации и производительности
1.1 Производительность и оптимизация
- Сергей Куксенко – “Квантовые” эффекты производительности,
- Сергей Куксенко – Сессия вопросов-ответов о производительности Java,
- Алексей Шипилёв и Сергей Куксенко, Россия – Методология оптимизации производительности,
- Сергей Куксенко, Oracle — Железные счётчики
- Алексей Шипилёв, Oracle — Катехизис java.lang.String – о реализации строк в Java, способы оптимизации работы со строками и ошибки, которые часто допускают при оптимизации работы со строками,
- Алексей Шипилёв — Java Benchmarking: как два таймстампа прочитать!
- Алексей Шипилёв — Java Benchmarking: как два таймстампа записать
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: теория
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: детали
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: ещё детали
- Олег Бунин, Андрей Паньгин, Алексей Рагозин, Олег Анастасьев — Круглый стол. HighLoad
- Алексей Шипилёв, Oracle — Сжимай меня полностью
- Дмитрий Лазаренко — Оптимизация работы JVM в облаке
- Дмитрий Чуйко — Быстрая загрузка ваших классов
- Глеб Смирнов — HotSpot, что ты делаешь?! Ахаха, прекрати!
- Kirill Golodnov — О бесконечно долгой работе дочерних процессов Java-приложения
- Андрей Афанасьев — Оптимизация производительности распределенных приложений…
- Руслан Черёмин — Disruptor и прочие фокусы
- Gleb Smirnov – Side-By-Side Performance Comparisons – что значит “тормозит” и как с этим бороться
- Nikita Salnikov Tarnovski – First steps in GC tuning – проблемы, связанные с производительностью из-за сборщика мусора
1.2 Высоконагруженные приложения (HighLoad)
- Андрей Паньгин — Особенности разработки высоконагруженного сервера на Java
- Алексей Шевчук — Подходы к решению проблем производительности высоконагруженых сервисов
- Роман Елизаров — Миллионы котировок в секунду на чистой Java
- Олег Анастасьев — За гранью возможного (Keynote) – о проблемах при создания Однокласников и решения для высоконагруженных сервисов,
- Андрея Паньгина — Выжимаем из сервера максимум: приемы кеширования и передачи данных на Java – описание приемов создания высоконагруженных систем на Odnoklassniki.ru,
- Alexander Oleynikov — Практический опыт построения API высоконагруженных сервисов – описание создания высоконагруженных систем в Yandex’е,
- Valerii Moisieienko – How to Manage 10K request per second in HA manner – история разработки высоконагруженного приложения на недорогом железе,
1.3 Сборка мусора, утечки памяти и работа с памятью
- Алексей Рагозин — Сборка мусора, битва алгоритмов
- Владимир Долженко — GC: друг или враг?
- Роман Елизаров — Почему GC съедает все моё CPU?
- Никита Сальников-Тарновский, Plumbr — Где моя память, чувак?!
- Глеб Смирнов, Plumbr — Тайны — в наших головах, а не в JVM
- Никита Сальников-Тарновский — Утечки памяти
- Алексей Шипилёв — О чём молчат Heap Dump-ы
- Владимир Воскресенский — Микрохирургия HotSpot
- Александр Макаров — Исследование возможностей и ограничений JVM по оптимизации памяти
- Андрей Паньгин — Кеширование данных вне Java Heap и работа с разделяемой памятью в Java
- Владимир Иванов — G1 Garbage Collector
- Иван Крылов — StructuredArray и ObjectLayout – как JVM представляет объекты и вопросы производительности представления объектов,
- Никита Сальников-Тарновский — Heap, off you go
- Nikita Salnikov-Tarnovski – I bet you have a permgen leak in your application – утечки памяти из-за class load’ов
2. Инструменты и IDE
2.1 IDE и инструменты разработки
- Андрей Зайцев, Дмитрий Нестерук, JetBrains — Инструменты командной разработки
- Николай Чашников — Поддержка Java 8 в IntelliJ IDEA
- Андрей Солнцев — Eclipse vs Intellij IDEA
- Николай Чашников — IntelliJ IDEA изнутри
- Дмитрий Найданов — Play Framework 2.0 в IntelliJ IDEA
- Николай Чашников — Компилятор Java и IDE: взаимовыгодное сотрудничество
- Андрей Чепцов, Барух Садогурский, Антон Архипов — Круглый стол. Инструменты Java-разработчика
- Александр (Шура) Ильин — Анализ покрытия с помощью JCov
- Антон Архипов — JRebel – инструмент, который позволяет «на лету» перезагружать классы, измененные с момента развёртывания приложения.,
- Барух Садогурский — Разработка модулярного софта: добро пожаловать в АД!
- Alexey Alexandrov – All inclusive Jeastic PaaS – описание платформы для облачных вычислений
- Baruch Sadogurskii – Managing Modular Software for your NuGet, C++ and Java Development
- Philip Torchinsky – Интеграция баг-трекера и сервера CI с IntelliJ IDEA
- ladimir Kozhaev – How to write IDE for your DSL in one day
- Евгений Борисов — Power of Gradle
- Sergey Morenets – Gradle 2. Write once, build everywhere – внимание: видео на украинском языке
2.2 Отладка, профилирование, мониторинг
- Алексей Рагозин — Непрерывное профилирование Java-приложений в ходе эксплуатации
- Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками
- Владимир Ситников — Профайлер в каждый дом
- Владимир Красильщик — Мониторинг Java-приложения с многопроцессной архитектурой
- Виталий Трифанов и Дмитрий Цителов — Динамическое обнаружение гонок в многопоточных Java-программах
- Андрей Паньгин — Лучший отладчик — сделанный своими руками
- Андрей Паньгин — Аварийный дамп — черный ящик упавшей JVM
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 2
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 1
- Александр Отенко — О чём молчит профайлер
- Андрей Паньгин — Аварийный дамп — «черный ящик» JVM
- Алексей Рагозин – Диагностические интерфейсы JVM, или Как сделать профайлер своими руками
- Владимир Воскресенский — Практическое применение OSS для анализа Java-приложений — Использование Oracle Solaris Studio для анализа высокопроизводительных Java-приложений
- Алексей Шипилёв — (The Art of) (Java) Performance Benchmarking II
3. Особенности разных языков JVM и версий Java
3.1 Groovy и Grails
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
Ресурсы для дискуссий и обсуждений (на английском). К оглавлению
- r/java – Subreddit для Java пользователей.
- stackoverflow – Популярная платформа для вопросов/ответов
- vJUG – Virtual Java User Group.
2. Influential Books
Книги которые оказали огромное влияние на Java мир и которые действительно стоят того чтобы их прочитать (на английском). К оглавлению
3. Websites
Полезные сайты. К оглавлению
- Android Arsenal
- Google Java Style
- InfoQ
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- The Java Specialist’ Newsletter
- The Takipi Blog
- TheServerSide.com
- Thoughts On Java
- Vanilla Java
- Vlad Mihalcea on Hibernate
- Voxxed
IX Видео доклады и лекции о Java
- 1. Оптимизация и производительность
- 2. Инструменты и IDE
- 3. Особенности разных языков JVM и версий Java
- 4. Фреймворки Java
- 5. Базы данных, поисковые системы и BigData
- 6. Особенности языка Java
- 6.1 Cериализации
- 6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- 6.3 Aсинхронность и многопоточность
- 6.4 Интеграция
- 6.5 Безопасность, Java Security Model и т.д.
- 6.6 Виртуальная машина Java и особенности реализации JVM
- 6.7 Аспектно-ориентированное программирование
- 6.8 Рефлексия и Invokedynamic
- 6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
- 6.10 Особенности языка Java
- 7. Качество кода и вопросы архитектуры
- 8. Прочее
1. Вопросы оптимизации и производительности
1.1 Производительность и оптимизация
- Сергей Куксенко – “Квантовые” эффекты производительности,
- Сергей Куксенко – Сессия вопросов-ответов о производительности Java,
- Алексей Шипилёв и Сергей Куксенко, Россия – Методология оптимизации производительности,
- Сергей Куксенко, Oracle — Железные счётчики
- Алексей Шипилёв, Oracle — Катехизис java.lang.String – о реализации строк в Java, способы оптимизации работы со строками и ошибки, которые часто допускают при оптимизации работы со строками,
- Алексей Шипилёв — Java Benchmarking: как два таймстампа прочитать!
- Алексей Шипилёв — Java Benchmarking: как два таймстампа записать
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: теория
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: детали
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: ещё детали
- Олег Бунин, Андрей Паньгин, Алексей Рагозин, Олег Анастасьев — Круглый стол. HighLoad
- Алексей Шипилёв, Oracle — Сжимай меня полностью
- Дмитрий Лазаренко — Оптимизация работы JVM в облаке
- Дмитрий Чуйко — Быстрая загрузка ваших классов
- Глеб Смирнов — HotSpot, что ты делаешь?! Ахаха, прекрати!
- Kirill Golodnov — О бесконечно долгой работе дочерних процессов Java-приложения
- Андрей Афанасьев — Оптимизация производительности распределенных приложений…
- Руслан Черёмин — Disruptor и прочие фокусы
- Gleb Smirnov – Side-By-Side Performance Comparisons – что значит “тормозит” и как с этим бороться
- Nikita Salnikov Tarnovski – First steps in GC tuning – проблемы, связанные с производительностью из-за сборщика мусора
1.2 Высоконагруженные приложения (HighLoad)
- Андрей Паньгин — Особенности разработки высоконагруженного сервера на Java
- Алексей Шевчук — Подходы к решению проблем производительности высоконагруженых сервисов
- Роман Елизаров — Миллионы котировок в секунду на чистой Java
- Олег Анастасьев — За гранью возможного (Keynote) – о проблемах при создания Однокласников и решения для высоконагруженных сервисов,
- Андрея Паньгина — Выжимаем из сервера максимум: приемы кеширования и передачи данных на Java – описание приемов создания высоконагруженных систем на Odnoklassniki.ru,
- Alexander Oleynikov — Практический опыт построения API высоконагруженных сервисов – описание создания высоконагруженных систем в Yandex’е,
- Valerii Moisieienko – How to Manage 10K request per second in HA manner – история разработки высоконагруженного приложения на недорогом железе,
1.3 Сборка мусора, утечки памяти и работа с памятью
- Алексей Рагозин — Сборка мусора, битва алгоритмов
- Владимир Долженко — GC: друг или враг?
- Роман Елизаров — Почему GC съедает все моё CPU?
- Никита Сальников-Тарновский, Plumbr — Где моя память, чувак?!
- Глеб Смирнов, Plumbr — Тайны — в наших головах, а не в JVM
- Никита Сальников-Тарновский — Утечки памяти
- Алексей Шипилёв — О чём молчат Heap Dump-ы
- Владимир Воскресенский — Микрохирургия HotSpot
- Александр Макаров — Исследование возможностей и ограничений JVM по оптимизации памяти
- Андрей Паньгин — Кеширование данных вне Java Heap и работа с разделяемой памятью в Java
- Владимир Иванов — G1 Garbage Collector
- Иван Крылов — StructuredArray и ObjectLayout – как JVM представляет объекты и вопросы производительности представления объектов,
- Никита Сальников-Тарновский — Heap, off you go
- Nikita Salnikov-Tarnovski – I bet you have a permgen leak in your application – утечки памяти из-за class load’ов
2. Инструменты и IDE
2.1 IDE и инструменты разработки
- Андрей Зайцев, Дмитрий Нестерук, JetBrains — Инструменты командной разработки
- Николай Чашников — Поддержка Java 8 в IntelliJ IDEA
- Андрей Солнцев — Eclipse vs Intellij IDEA
- Николай Чашников — IntelliJ IDEA изнутри
- Дмитрий Найданов — Play Framework 2.0 в IntelliJ IDEA
- Николай Чашников — Компилятор Java и IDE: взаимовыгодное сотрудничество
- Андрей Чепцов, Барух Садогурский, Антон Архипов — Круглый стол. Инструменты Java-разработчика
- Александр (Шура) Ильин — Анализ покрытия с помощью JCov
- Антон Архипов — JRebel – инструмент, который позволяет «на лету» перезагружать классы, измененные с момента развёртывания приложения.,
- Барух Садогурский — Разработка модулярного софта: добро пожаловать в АД!
- Alexey Alexandrov – All inclusive Jeastic PaaS – описание платформы для облачных вычислений
- Baruch Sadogurskii – Managing Modular Software for your NuGet, C++ and Java Development
- Philip Torchinsky – Интеграция баг-трекера и сервера CI с IntelliJ IDEA
- ladimir Kozhaev – How to write IDE for your DSL in one day
- Евгений Борисов — Power of Gradle
- Sergey Morenets – Gradle 2. Write once, build everywhere – внимание: видео на украинском языке
2.2 Отладка, профилирование, мониторинг
- Алексей Рагозин — Непрерывное профилирование Java-приложений в ходе эксплуатации
- Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками
- Владимир Ситников — Профайлер в каждый дом
- Владимир Красильщик — Мониторинг Java-приложения с многопроцессной архитектурой
- Виталий Трифанов и Дмитрий Цителов — Динамическое обнаружение гонок в многопоточных Java-программах
- Андрей Паньгин — Лучший отладчик — сделанный своими руками
- Андрей Паньгин — Аварийный дамп — черный ящик упавшей JVM
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 2
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 1
- Александр Отенко — О чём молчит профайлер
- Андрей Паньгин — Аварийный дамп — «черный ящик» JVM
- Алексей Рагозин – Диагностические интерфейсы JVM, или Как сделать профайлер своими руками
- Владимир Воскресенский — Практическое применение OSS для анализа Java-приложений — Использование Oracle Solaris Studio для анализа высокопроизводительных Java-приложений
- Алексей Шипилёв — (The Art of) (Java) Performance Benchmarking II
3. Особенности разных языков JVM и версий Java
3.1 Groovy и Grails
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
Полезные сайты. К оглавлению
- Android Arsenal
- Google Java Style
- InfoQ
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- The Java Specialist’ Newsletter
- The Takipi Blog
- TheServerSide.com
- Thoughts On Java
- Vanilla Java
- Vlad Mihalcea on Hibernate
- Voxxed
IX Видео доклады и лекции о Java
- 1. Оптимизация и производительность
- 2. Инструменты и IDE
- 3. Особенности разных языков JVM и версий Java
- 4. Фреймворки Java
- 5. Базы данных, поисковые системы и BigData
- 6. Особенности языка Java
- 6.1 Cериализации
- 6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- 6.3 Aсинхронность и многопоточность
- 6.4 Интеграция
- 6.5 Безопасность, Java Security Model и т.д.
- 6.6 Виртуальная машина Java и особенности реализации JVM
- 6.7 Аспектно-ориентированное программирование
- 6.8 Рефлексия и Invokedynamic
- 6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
- 6.10 Особенности языка Java
- 7. Качество кода и вопросы архитектуры
- 8. Прочее
1. Вопросы оптимизации и производительности
1.1 Производительность и оптимизация
- Сергей Куксенко – “Квантовые” эффекты производительности,
- Сергей Куксенко – Сессия вопросов-ответов о производительности Java,
- Алексей Шипилёв и Сергей Куксенко, Россия – Методология оптимизации производительности,
- Сергей Куксенко, Oracle — Железные счётчики
- Алексей Шипилёв, Oracle — Катехизис java.lang.String – о реализации строк в Java, способы оптимизации работы со строками и ошибки, которые часто допускают при оптимизации работы со строками,
- Алексей Шипилёв — Java Benchmarking: как два таймстампа прочитать!
- Алексей Шипилёв — Java Benchmarking: как два таймстампа записать
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: теория
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: детали
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: ещё детали
- Олег Бунин, Андрей Паньгин, Алексей Рагозин, Олег Анастасьев — Круглый стол. HighLoad
- Алексей Шипилёв, Oracle — Сжимай меня полностью
- Дмитрий Лазаренко — Оптимизация работы JVM в облаке
- Дмитрий Чуйко — Быстрая загрузка ваших классов
- Глеб Смирнов — HotSpot, что ты делаешь?! Ахаха, прекрати!
- Kirill Golodnov — О бесконечно долгой работе дочерних процессов Java-приложения
- Андрей Афанасьев — Оптимизация производительности распределенных приложений…
- Руслан Черёмин — Disruptor и прочие фокусы
- Gleb Smirnov – Side-By-Side Performance Comparisons – что значит “тормозит” и как с этим бороться
- Nikita Salnikov Tarnovski – First steps in GC tuning – проблемы, связанные с производительностью из-за сборщика мусора
1.2 Высоконагруженные приложения (HighLoad)
- Андрей Паньгин — Особенности разработки высоконагруженного сервера на Java
- Алексей Шевчук — Подходы к решению проблем производительности высоконагруженых сервисов
- Роман Елизаров — Миллионы котировок в секунду на чистой Java
- Олег Анастасьев — За гранью возможного (Keynote) – о проблемах при создания Однокласников и решения для высоконагруженных сервисов,
- Андрея Паньгина — Выжимаем из сервера максимум: приемы кеширования и передачи данных на Java – описание приемов создания высоконагруженных систем на Odnoklassniki.ru,
- Alexander Oleynikov — Практический опыт построения API высоконагруженных сервисов – описание создания высоконагруженных систем в Yandex’е,
- Valerii Moisieienko – How to Manage 10K request per second in HA manner – история разработки высоконагруженного приложения на недорогом железе,
1.3 Сборка мусора, утечки памяти и работа с памятью
- Алексей Рагозин — Сборка мусора, битва алгоритмов
- Владимир Долженко — GC: друг или враг?
- Роман Елизаров — Почему GC съедает все моё CPU?
- Никита Сальников-Тарновский, Plumbr — Где моя память, чувак?!
- Глеб Смирнов, Plumbr — Тайны — в наших головах, а не в JVM
- Никита Сальников-Тарновский — Утечки памяти
- Алексей Шипилёв — О чём молчат Heap Dump-ы
- Владимир Воскресенский — Микрохирургия HotSpot
- Александр Макаров — Исследование возможностей и ограничений JVM по оптимизации памяти
- Андрей Паньгин — Кеширование данных вне Java Heap и работа с разделяемой памятью в Java
- Владимир Иванов — G1 Garbage Collector
- Иван Крылов — StructuredArray и ObjectLayout – как JVM представляет объекты и вопросы производительности представления объектов,
- Никита Сальников-Тарновский — Heap, off you go
- Nikita Salnikov-Tarnovski – I bet you have a permgen leak in your application – утечки памяти из-за class load’ов
2. Инструменты и IDE
2.1 IDE и инструменты разработки
- Андрей Зайцев, Дмитрий Нестерук, JetBrains — Инструменты командной разработки
- Николай Чашников — Поддержка Java 8 в IntelliJ IDEA
- Андрей Солнцев — Eclipse vs Intellij IDEA
- Николай Чашников — IntelliJ IDEA изнутри
- Дмитрий Найданов — Play Framework 2.0 в IntelliJ IDEA
- Николай Чашников — Компилятор Java и IDE: взаимовыгодное сотрудничество
- Андрей Чепцов, Барух Садогурский, Антон Архипов — Круглый стол. Инструменты Java-разработчика
- Александр (Шура) Ильин — Анализ покрытия с помощью JCov
- Антон Архипов — JRebel – инструмент, который позволяет «на лету» перезагружать классы, измененные с момента развёртывания приложения.,
- Барух Садогурский — Разработка модулярного софта: добро пожаловать в АД!
- Alexey Alexandrov – All inclusive Jeastic PaaS – описание платформы для облачных вычислений
- Baruch Sadogurskii – Managing Modular Software for your NuGet, C++ and Java Development
- Philip Torchinsky – Интеграция баг-трекера и сервера CI с IntelliJ IDEA
- ladimir Kozhaev – How to write IDE for your DSL in one day
- Евгений Борисов — Power of Gradle
- Sergey Morenets – Gradle 2. Write once, build everywhere – внимание: видео на украинском языке
2.2 Отладка, профилирование, мониторинг
- Алексей Рагозин — Непрерывное профилирование Java-приложений в ходе эксплуатации
- Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками
- Владимир Ситников — Профайлер в каждый дом
- Владимир Красильщик — Мониторинг Java-приложения с многопроцессной архитектурой
- Виталий Трифанов и Дмитрий Цителов — Динамическое обнаружение гонок в многопоточных Java-программах
- Андрей Паньгин — Лучший отладчик — сделанный своими руками
- Андрей Паньгин — Аварийный дамп — черный ящик упавшей JVM
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 2
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 1
- Александр Отенко — О чём молчит профайлер
- Андрей Паньгин — Аварийный дамп — «черный ящик» JVM
- Алексей Рагозин – Диагностические интерфейсы JVM, или Как сделать профайлер своими руками
- Владимир Воскресенский — Практическое применение OSS для анализа Java-приложений — Использование Oracle Solaris Studio для анализа высокопроизводительных Java-приложений
- Алексей Шипилёв — (The Art of) (Java) Performance Benchmarking II
3. Особенности разных языков JVM и версий Java
3.1 Groovy и Grails
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Андрей Паньгин — Особенности разработки высоконагруженного сервера на Java
- Алексей Шевчук — Подходы к решению проблем производительности высоконагруженых сервисов
- Роман Елизаров — Миллионы котировок в секунду на чистой Java
- Олег Анастасьев — За гранью возможного (Keynote) – о проблемах при создания Однокласников и решения для высоконагруженных сервисов,
- Андрея Паньгина — Выжимаем из сервера максимум: приемы кеширования и передачи данных на Java – описание приемов создания высоконагруженных систем на Odnoklassniki.ru,
- Alexander Oleynikov — Практический опыт построения API высоконагруженных сервисов – описание создания высоконагруженных систем в Yandex’е,
- Valerii Moisieienko – How to Manage 10K request per second in HA manner – история разработки высоконагруженного приложения на недорогом железе,
1.3 Сборка мусора, утечки памяти и работа с памятью
- Алексей Рагозин — Сборка мусора, битва алгоритмов
- Владимир Долженко — GC: друг или враг?
- Роман Елизаров — Почему GC съедает все моё CPU?
- Никита Сальников-Тарновский, Plumbr — Где моя память, чувак?!
- Глеб Смирнов, Plumbr — Тайны — в наших головах, а не в JVM
- Никита Сальников-Тарновский — Утечки памяти
- Алексей Шипилёв — О чём молчат Heap Dump-ы
- Владимир Воскресенский — Микрохирургия HotSpot
- Александр Макаров — Исследование возможностей и ограничений JVM по оптимизации памяти
- Андрей Паньгин — Кеширование данных вне Java Heap и работа с разделяемой памятью в Java
- Владимир Иванов — G1 Garbage Collector
- Иван Крылов — StructuredArray и ObjectLayout – как JVM представляет объекты и вопросы производительности представления объектов,
- Никита Сальников-Тарновский — Heap, off you go
- Nikita Salnikov-Tarnovski – I bet you have a permgen leak in your application – утечки памяти из-за class load’ов
2. Инструменты и IDE
2.1 IDE и инструменты разработки
- Андрей Зайцев, Дмитрий Нестерук, JetBrains — Инструменты командной разработки
- Николай Чашников — Поддержка Java 8 в IntelliJ IDEA
- Андрей Солнцев — Eclipse vs Intellij IDEA
- Николай Чашников — IntelliJ IDEA изнутри
- Дмитрий Найданов — Play Framework 2.0 в IntelliJ IDEA
- Николай Чашников — Компилятор Java и IDE: взаимовыгодное сотрудничество
- Андрей Чепцов, Барух Садогурский, Антон Архипов — Круглый стол. Инструменты Java-разработчика
- Александр (Шура) Ильин — Анализ покрытия с помощью JCov
- Антон Архипов — JRebel – инструмент, который позволяет «на лету» перезагружать классы, измененные с момента развёртывания приложения.,
- Барух Садогурский — Разработка модулярного софта: добро пожаловать в АД!
- Alexey Alexandrov – All inclusive Jeastic PaaS – описание платформы для облачных вычислений
- Baruch Sadogurskii – Managing Modular Software for your NuGet, C++ and Java Development
- Philip Torchinsky – Интеграция баг-трекера и сервера CI с IntelliJ IDEA
- ladimir Kozhaev – How to write IDE for your DSL in one day
- Евгений Борисов — Power of Gradle
- Sergey Morenets – Gradle 2. Write once, build everywhere – внимание: видео на украинском языке
2.2 Отладка, профилирование, мониторинг
- Алексей Рагозин — Непрерывное профилирование Java-приложений в ходе эксплуатации
- Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками
- Владимир Ситников — Профайлер в каждый дом
- Владимир Красильщик — Мониторинг Java-приложения с многопроцессной архитектурой
- Виталий Трифанов и Дмитрий Цителов — Динамическое обнаружение гонок в многопоточных Java-программах
- Андрей Паньгин — Лучший отладчик — сделанный своими руками
- Андрей Паньгин — Аварийный дамп — черный ящик упавшей JVM
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 2
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 1
- Александр Отенко — О чём молчит профайлер
- Андрей Паньгин — Аварийный дамп — «черный ящик» JVM
- Алексей Рагозин – Диагностические интерфейсы JVM, или Как сделать профайлер своими руками
- Владимир Воскресенский — Практическое применение OSS для анализа Java-приложений — Использование Oracle Solaris Studio для анализа высокопроизводительных Java-приложений
- Алексей Шипилёв — (The Art of) (Java) Performance Benchmarking II
3. Особенности разных языков JVM и версий Java
3.1 Groovy и Grails
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Андрей Зайцев, Дмитрий Нестерук, JetBrains — Инструменты командной разработки
- Николай Чашников — Поддержка Java 8 в IntelliJ IDEA
- Андрей Солнцев — Eclipse vs Intellij IDEA
- Николай Чашников — IntelliJ IDEA изнутри
- Дмитрий Найданов — Play Framework 2.0 в IntelliJ IDEA
- Николай Чашников — Компилятор Java и IDE: взаимовыгодное сотрудничество
- Андрей Чепцов, Барух Садогурский, Антон Архипов — Круглый стол. Инструменты Java-разработчика
- Александр (Шура) Ильин — Анализ покрытия с помощью JCov
- Антон Архипов — JRebel – инструмент, который позволяет «на лету» перезагружать классы, измененные с момента развёртывания приложения.,
- Барух Садогурский — Разработка модулярного софта: добро пожаловать в АД!
- Alexey Alexandrov – All inclusive Jeastic PaaS – описание платформы для облачных вычислений
- Baruch Sadogurskii – Managing Modular Software for your NuGet, C++ and Java Development
- Philip Torchinsky – Интеграция баг-трекера и сервера CI с IntelliJ IDEA
- ladimir Kozhaev – How to write IDE for your DSL in one day
- Евгений Борисов — Power of Gradle
- Sergey Morenets – Gradle 2. Write once, build everywhere – внимание: видео на украинском языке
2.2 Отладка, профилирование, мониторинг
- Алексей Рагозин — Непрерывное профилирование Java-приложений в ходе эксплуатации
- Андрей Паньгин, Одноклассники — Лучший отладчик — сделанный своими руками
- Владимир Ситников — Профайлер в каждый дом
- Владимир Красильщик — Мониторинг Java-приложения с многопроцессной архитектурой
- Виталий Трифанов и Дмитрий Цителов — Динамическое обнаружение гонок в многопоточных Java-программах
- Андрей Паньгин — Лучший отладчик — сделанный своими руками
- Андрей Паньгин — Аварийный дамп — черный ящик упавшей JVM
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 2
- Андрей Паньгин — Анализ аварийных дампов JVM, часть 1
- Александр Отенко — О чём молчит профайлер
- Андрей Паньгин — Аварийный дамп — «черный ящик» JVM
- Алексей Рагозин – Диагностические интерфейсы JVM, или Как сделать профайлер своими руками
- Владимир Воскресенский — Практическое применение OSS для анализа Java-приложений — Использование Oracle Solaris Studio для анализа высокопроизводительных Java-приложений
- Алексей Шипилёв — (The Art of) (Java) Performance Benchmarking II
3. Особенности разных языков JVM и версий Java
3.1 Groovy и Grails
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Барух Садогурский, Евгений Борисов — Эпичные Groovy Puzzlers — Месть Скобок
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers
- Барух Садогурский и Евгений Борисов — Groovy Puzzlers – Странное, Непонятное и Мамочки-а-это-что-такое?!
- Евгений Борисов — Марлезонский балет по Groovy в трех частях
- Барух Садогурский — Метапрограммирование на уровне компилятора в Groovy
- Барух Садогурский — Groovy DSL для plugin-ов: расширения человеческим языком
- Барух Садогурский — Транcформации Абстрактного Синтаксического Дерева в Груви. ЩИТО?!
- Izzet Mustafaiev – Groovy MOPping – принципы построения DSL на groovy
- Baruch Sadogursky – Search for the Holy Grail (and test it once found) – какие решения для поиска существуют в Grail и какие решения для тестирования существуют в Grails
3.2 Clojure
- Николай Рыжиков — Clojure: интерактивная разработка для интерактивного веб
- Maurice Naftalin — Closures and Collections: the World After Eight
- Dmitriy Morozov – ETL all the things! – использование ETL (Extract, transform, load) в Clojure, как можно использовать Spark c Clojure,
- Misha Kozik – DSL in Clojure – использование Clojure для написания DSL,
3.3 Kotlin
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Андрей Бреслав — Type-safe Web with Kotlin
- Андрей Бреслав — Project Kotlin
- Евгений Геращенко — Kotlin, язык программирования для JVM
- — Язык программирования Kotlin
3.4 Java Embedded и IoT
- Александр Белокрылов, Александр Мироненко, Oracle — Восстание машин: в энтерпрайз с 256 КБ RAM
- Белокрылов, Мироненко — Силовая установка c сердцем из Raspberry Pi и мозгом на Java Embedded
- Александр Белокрылов и Александр Мироненко — Java Embedded у вас дома
- Александр Мироненко и Александр Белокрылов — Java Embedded у вас дома
- Лев Прийма — Java SE Embedded 8
- Александр Белокрылов и Александр Мироненко — Полноценный Java runtime, 256Kb RAM и 5 литров пива
- — Java ME Embedded: проверенные технологии на перспективных рынках
- Yakov Fain – RESTful services and OAUTH protocol in IoT
3.5 Java EE 7
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
3.6 Java 8, лямбды и Stream Api
- Сергей Куксенко — Я, лямбда
- Сергей Куксенко — JDK 8: Молот лямбд
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Владимир Иванов — Java 8 и JVM: что нового в HotSpot
- Сергей Куксенко — Java 8: Advanced Stream Techniques
- Дмитрий Козорез — Java 8 Time API
- Владимир Иванов — Java 8: что нового в HotSpot JVM?
- Maurice Naftalin — What’s New in Java 8
- Александр Ильин — Type annotations in Java 8. И почему это хорошо
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 2
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1
- Сергей Куксенко — Stream API, часть 2
- Сергей Куксенко — Stream API, часть 1
- Сергей Куксенко — JDK8: Stream style
- Алексей Фёдоров — Компромиссы в Java 8 с примерами и картинками
- Александр Белокрылов — Знакомьтесь, Java 8
- Дмитрий Козорез — Долгий путь к Лямбдам
- Соколов Михаил — Java 8: лямбда выражения и Stream API
- Oleg Tsal-Tsalko – Java 8 Date&Time benefits
- Oleg Tsal-Tsalko – Java 8 Lambdas Hands-On-Labs
- Pavel Grushetzky – Java for hipsters and rocks stars
- Oleg Tsal-Tsalko – 10+ new features you ought to know using Java 8
3.7 Java 9+ и будущее Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Иван Крылов, Владимир Иванов, Volker Simonis, Никита Липский — Круглый стол. Будущее Java-платформы
- Владимир Иванов — Future of Java: 9 and beyond
- Владимир Иванов — Платформа Java: прошлое и будущее
- Шура Ильин — Project Jigsaw. Take 2
- Александр Белокрылов, Oracle — Java: эволюция неизбежна
- Аня Барски — Java Life Story
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
4. Фреймворки Java
4.1 Spring
- Барух Садогурский, Евгений Борисов — Spring Puzzlers — Начало
- Евгений Борисов — Spring Data? Да, та!
- Барух Садогурский, Евгений Борисов, Николай Алименков — Зачем у Spring столько конфигураций?
- Евгений Борисов — Spring the Ripper
- Евгений Борисов — Spring-потрошитель, часть 2
- Евгений Борисов — Spring-потрошитель, часть 1
- Евгений Борисов — Spring 4.0: новое поколение
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Меркурьев Евгений — Весна идет, весне – дорогу! Новое в Spring Framework
- Artem Bilan – Spring and Messaging: The next development generation
- Vladimir Tsukur – From CRUD to Hypermedia APIs with Spring
- Igor Khotin – App infrastructure for microservices with Spring Cloud 1.0.0 – микросервисы, cloud, Spring и DevOps,
- Sergey Morenets – Spring Boot. Boot up your development – описание фреймворка Spring Boot, почему данный фреймворк позволяет создавать приложения намного быстрее,
4.2 Вебфреймворки (JavaFX, Javascript, AngularJS и т.п.)
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Сергей Гринёв — JavaFX: FXML и SceneBuilder
- Артём Ананьев — Неформально о JavaFX
- Дмитрий Кузовец — FXML и SceneBuilder: отделяем пользовательский интерфейс от логики в JavaFX
- Павел Нестеренко — Java + JavaScript: переходи на мобильную сторону
- Евгений Родин — Асинхронная обработка данных в web-приложениях на Java
- Евгений Родин — Разработка веб-сайтов средствами Java (на примере простого сайта) – примеры разработки вебсайта с использованием mysql, tomcat и т.п. технологий
- Соколов Дмитрий — Как выбрать библиотеки для современного Web-приложение на Java
- Владимир Сонькин — Использование AJAX в разработке web-приложений на Java
- Александор Дворецкий — Как подготовиться к созданию нагруженных сайтов
- Владимир Сонькин — Использование Spring 4 и AngularJS для разработки веб-приложений на базе архитектуры REST
- Victor Polischuk – Web-application I have always dreamt of
- Nikita Lipsky – Delivering Native User Experience in Client-Side Java Applications – нативные клиенты для работы с вебом вместо браузерного веба (от мобильных до десктопных приложений),
- Olga Semeniuk – Less JS! Web components for back-end developers – введение в веб компоненты для бакенд разработчиков
4.3 Прочие фреймворки и популярные библиотеки
- Цытович Павел — Основы разработки приложения на платформе Android
- Андрей Шевченко — Генерация больших отчетов с использованием Jasper Reports
- Владимир Красильщик — Java-mapping для прагматичных программистов – использования библиотек и фреймворктов для mapping’а (dozer, spring type converter api, nomin, scala dsl, transmorf и т.д.)
- Andrii Golovei – Highly available and scalable application for dummies with Storm – Storm фреймворк для машинного обучения, высокопроизводительных вычислений
5. Базы данных, поисковые системы и BigData
5.1 NoSql и кеши
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Олег Анастасьев — За гранью NoSQL: NewSQL на Cassandra
- Алексей Зиновьев — Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете
- Яков Жданов — In-memory accelerator for MongoDB
- Олег Анастасьев — Класс!ная Cassandra
- Роман Антипин — Франкенштейнизация Voldemort, или Key-Value данные в «Одноклассниках»
- Яков Жданов — От дисковой архитектуры к In-Memory
- Алексей Рагозин — Блеск и нищета распределенных кешей
- Alexey Tokar — MongoDB в продакшене – миф или реальность?
- Artem Orobets – How do you store your data?
- Roman Nikitchenko – Big Data: from mammoth to elephant – transforming legacy with Hadoop – как преобразовать легаси проекты в новые Big Data приложений с современным стеком технологий,
5.2 Sql базы данных и JPA
5.3 Поисковые системы
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Михаил Хлуднев — В поисках Tommy Hilfiger – о Apache Lucene, свободной библиотеки для высокоскоростного полнотекстового поиска, о разных системах поиска,
- Alexey Tokar – To find a needle in a haystack – о нечетком поиске в словарях от разработчика Яндекса
5.4 BigData, Data Scientist, Машинное обучение
- Алексей Зиновьев — Java в качестве основного рабочего инструмента Data Scientist
- Roman Nikitchenko – Apache HBase: crazy dances on the elephant back
- Serhiy Masyutin – Big Data Analysis – внимание на украинском языке
- Boris Trofimov – Scalding Big Data: Thorns and Roses,
- Taras Matyashovskyy – Introduction to Real-Time Big Data with Apache Spark – внимание на украинском языке
- Serhiy Masyutin – Big Data analysis approaches in Java world – что такое Big Data, технология Map-Reduce и примеры проектов
- Kyrylo Holodnov – Scaling a solution of an NP-hard problem with Apache ZooKeeper – о Apache ZooKeeper, как с работать и решать различные задачи,
- Andrii Golovei – Elastic stack in BigData – использование полнотексового поиска в BigData используя решения компании Elastic (Elastic Search)
6. Особенности языка Java
6.1 Cериализации
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Роман Елизаров — Факты и заблуждения о Java-сериализации
- Olena Syrota, Oleg Tsal-Tsalko – Standard Java JSON binding. When? – описание существующих библиотек работы с JSON, их особенностей и проблем, ожидание стандартного JSON’a в Java 9
6.2 Работа с байткодом, java agent’ы, class loader и компиляции на лету
- Антон Архипов, ZeroTurnaround — Javassist на службе у Java-разработчика
- Никита Липский — Ahead-of-time компиляция
- Антон Архипов — Java-агенты, Instrumentation API и Javassist
- Антон Архипов — Загрузчики классов в Java: коллекция граблей
- Владимир Иванов — Динамическая (JIT) компиляция в JVM
- Дмитрий Завалишин — Конвертер байткода JVM для виртуальной машины Фантом
6.3 Aсинхронность и многопоточность
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Барух Садогурский — Как написать асинхронные многопоточные HTTP приложения
- Алексей Шипилёв — ForkJoinPool в Java 8
- Николай Алименков — Прикладная многопоточность
- Дмитрий Чуйко, Oracle — CompletableFuture уже здесь
- Глеб Смирнов — Расчленяя многопоточность
- Алексей Шипилёв — Прагматика Java Memory Model
- Глеб Смирнов — Многопоточность Java под капотом
- Роман Елизаров — Теоретический минимум для понимания Java Memory Model
- Дмитрий Чуйко — Новинки в java.util.concurrent
- Алексей Шипилёв — Bulletproof Java Concurrency
- Сергей Куксенко — Модель памяти
- Руслан Черёмин — Модель памяти Java: близкие контакты третьей степени
- Alexey Fyodorov – Atomics, CAS, and Nonblocking Algorithms – вопросы многозадачности, атомики, неблокирующие алгоритмы, CAS и т.п.
- Mikalai Alimenkou – Java Concurrency Applied – примеры практических решений про многозадачность
6.4 Интеграция
- Николай Алименков — Нужен ли нам JMS в мире современных Java-технологий?
- Яков Файн, Farata Systems — RESTful-сервисы и протокол OAuth в IoT
- Александр Белоцерковский — Windows Azure + Java = Open Integration
- Вадим Цесько — Фреймворк Akka и его использование в Яндексе
- Vladimir Tsukur — Вместе веcело шагать с HATEOAS! – разработка Web Api,
- Максим Юнусов — “Масштабируемое приложение за 15 минут (используем AKKA под Java)
- Вячеслав Лапин — Слабая связанность Java-сервера и web-интерфейса посредством REST API
6.5 Безопасность, Java Security Model и т.д.
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Михаил Дударев — Побег из песочницы. Уязвимости нулевого дня в Java
- Михаил Дударев — USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров
- Михаил Дударев — Опасные типы, или Java Security Model на практике
6.6 Виртуальная машина Java и особенности реализации JVM
- Андрей Паньгин — Java Runtime: повседневные обязанности виртуальной машины Java
- Олег Плисс — Виртуальные машины. Часть 1
- Олег Плисс — Виртуальные машины. Часть 2
- Олег Плисс — Виртуальные машины. Часть 3
- Олег Плисс — Виртуальные машины. Часть 4
- Артём Ананьев — Проект OpenJDK
- Андрей Бреслав — Компромиссы в разработке языков программирования
- Андрей Бреслав — Компромиссы, или Как проектируются языки программирования
- Никита Липский и Павел Павлов — Excelsior JET: внутренняя архитектура– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Никита Липский и Павел Павлов — Excelsior JET: обзор возможностей– описание быстрой JVM реализации Excelsior JET с компиляцией в машинный код,
- Nikita Lipsky — AOT компиляция – статическая компиляция JVM в Excelsior JET, её преимущества и возможности по сравнению с обычной компиляцией,
- Nikita Lipsky — Java худеет. Уменьшение размера дистрибутива Java приложения без зависимостей – использование статического компилятора Excelsior JET для уменьшения размеров дистрибутивов Java приложений,
- Никита Липский и Миша Быков — Занимательные истории из жизни техподдержки JVM – о техподержке JVM Excelsior JET, о Excelsior JET и об особенностях реализации JVM, различия между JVM и проблемы при переходе между разными JVM,
- Алексей Шипилёв — OpenJDK Frameworks: jmh & jcstress
- Шура Ильин — OpenJDK Test Base
- Шура Ильин — JTReg: OpenJDK test harness
- Шура Ильин — OpenJDK TestFest Intro
- Alexey Fyodorov – JDK: CPU, PSU, LU, FR – WTF??? – рассказывается о четырех типах обновлений JDK в компании Oracle (Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR)). Чем отличаются типы обновления, какие изменения возможны в каждом типе обновлений.
6.7 Аспектно-ориентированное программирование
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Николай Гарбузов, Донривер — Аспектно-ориентированное решение классических проблем
- Игорь Сухоруков. AspectJ Scripting
6.8 Рефлексия и Invokedynamic
- Владимир Иванов — Invokedynamic: роскошь или необходимость?
- Владимир Иванов — Глубокое погружение в invokedynamic
6.9 Работа с нативными библиотеками и кодом (JNI/JNA)
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
6.10 Особенности языка Java
- Владимир Ситников, NetCracker — Выражаемся регулярно – описание регулярных выражений, их использования и проблем,
- Алексей Рагозин — Структуры данных в Java, изобретаем заново – описание реализации коллекций в Java и возможные методы их улучшения,
- Светлана Исакова — Простыми словами про вывод типов
7. Качество кода и вопросы архитектуры
7.1 Рефакторинги, качество кода, методики программирования
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Яков Сироткин, Никита Липский, Олег Анастасьев, Филипп Дельгядо — Рефакторинги и технический долг
- Антон Кекс — Как нам спасти Java? — Часть 1 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Антон Кекс — Как нам спасти Java? — Часть 2 – о проблемах Java, о том как можно сделать Java лучше, какие привычные подходы программирования в Java на самом деле больше вредны, чем полезны,
- Николай Чашников — Писать код быстрее, ошибаться реже
- Николай Чашников — Разработка API в Java-проекте
- Николай Алименков — Парадигмы ООП
- Михаил Ершов — Разработка совместимого API
- Nikolay Chashnikov – Write code faster with fewer errors: is it possible? – как избегать ошибок при написании кода,
7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
- Антон Кекс — Архитектура интернет-банка без Enterprise
- Константин Кривопустов — Выбор технологий для корпоративного приложения
- Александр Тоболь — Платформа для видео сроком в квартал
- Антон Кекс — Как я создал desktop-приложение на Java, скачанное 9 миллионов раз
- Виктор Полищук — JBoss Drools Expert против грязи – описание системы управления бизнес правилами JBoss Drools
- Дмитрий Завалишин и Александр Шлянников — Java-технологии в Digital Zone – примеры реализаций приложений в Digital Zone (использование груви скриптов для гибкой настройки бизнес модели системы приложения такси)
- Яков Сироткин — Почему геномный ассемблер нельзя написать за выходные? – история разработки геномного ассемблера
- Яков Сироткин — История релизов – продолжение истории разработки геномного ассемблера
- Евгений Борисов — eXtreme Application Platform (XAP)
- Барух Садогурский — Bintray: Масштабируемый сервис в облаке с нуля
- Anatoliy Sokolenko – Key Problems of Microservice Architecture – что такое сервисы и микросервисы, как их реализовать на практике, чем это лучше стандартной архитектуры и какие проблемы возникают при такой архитектуре,
- Izzet Mustafaiev – Fault tolerance – look, it’s possible!
- Oleg Tsal-Tsalko – Distributed systems and scalability rules
- Baruch Sadogursky – Everything you wanted to know about async HTTP apps in Java – о написании асинхронного менеджера загрузок с параллельной загрузок файлов, одного файла, прерывания и паузы для программы репозиторий
- Maxim Ivanov – Hey, I’ve seen something like it before! – подходы к принятию архитектурных решений. Хайп (использования модных базвордов – микросервисов, nosql и т.п. ради базвордов) и его последствия для архитекторов.
7.3 Тестирование приложений
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java
- Глеб Смирнов — Мутационное тестирование, или О чём молчит Code Coverage – описание почему 100% Code Coverage у Unit тестов не гарантирует правильную работу кода, что такое мутационное тестирование и как оно помогает улучшить Unit тесты, описание мутационной системы pitest (http://pitest.org/)
- Алексей Рагозин — Как и зачем эмулировать распределённый кластер в JVM – описание библиотеки, которая позволяет для задач Unit тестирования эмулировать распределённый кластер на одной ноде
- Алексей Рагозин — Сеть — это большая JVM – часть 2 лекции ” Как и зачем эмулировать распределённый кластер в JVM “
- Mikalai Alimenkou – “TDD for database related code, how is it possible?” – описание TDD методологии
- Katya Kameneva – How I lost my QA job – о внедрении TDD технологий
- Dmytro Chyzhykov – Testing Web Apps with Spring Framework – тестирование Spring MVC приложений
- Андрей Солнцев — Пацан накодил — пацан протестил!
8. Прочее
- Алексей Вишенцев и Илья Агошков — Advanced Deployment
- Дмитрий Черепанов — Self-contained Application
- Сергей Куксенко — Quantum Performance Effects
- Кузьма Деретюк — UrsaJ HTTP File Storage
- Дмитрий Чуйко — Java Mission Control
- Igor Khotin – The Craft of Metaprogramming on JVM – о метапрограммировании в Java