Java software development projects

Содержание

Шпаргалка Java программиста 2: Триста пятьдесят самых популярных не мобильных Java opensource проектов на github

Что это и зачем оно надо: Как известно, главное преимущество Java мира в том в нем существует огромное количество open-source проектов на на все случаи жизни, однако найти нужный на github’e не так просто, так как описание проекта часто мало информативно, зачастую сложно даже понять этот проект для Android’a или нет. В этой статье я автоматически и полуавтоматически собрал Java проекты, убрал старые и проекты только для Android’a, выбрал 350 набравших больше всего звезд, разделил по категориям и перевел описания.

Если вы хотите убедиться что базы данных пишут не только на C, найти проекты для работы с большими данными или нейронными сетями, пишите свой язык программирования для JVM и хотите посмотреть как это уже сделано или же просто хотите узнать какие новые возможности можно найти в Java мире open-source то это статья вам, думаю, может пригодится.

За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.

Читайте также:  What is pojo class in java

Update: Внимание, актуальная версия со много большим количеством ссылок, находиться теперь в моем github’e проекте useful-java-links, по этой ссылке.

1. Фреймворки и библиотеки

1. Фреймворки

  1. ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX.. Лицензия: Apache 2, рейтинг — 6279. English

2. Полезные библиотеки

  1. zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. . Лицензия: Apache 2, рейтинг — 5314. English

3. Добавление новых возможностей в язык Java и JVM

  1. Lombok Очень горячие добавления для языка программирования Java. Лицензия: MIT, рейтинг — 1540. English

4. Вебфреймворки

  1. Play Framework Play Framework позволяет легко разрабатывать расширяемые вебприложения на Java и Scala.. Лицензия: Apache 2, рейтинг — 6771. English

5. Игровые фреймворки

  1. libgdx Кросплатформенный фреймворк для разработки игр на основе OpenGL (ES), работает под Windows, Linux, Mac OS X, Android, iOS и в браузерах с WebGL. . Лицензия: Apache 2, рейтинг — 6579. English

6. Java библиотеки и фреймворки для авторизации пользователей и обеспечения безопасности- 5 проектов

6. Java библиотеки и фреймворки для авторизации пользователей и обеспечения безопасности

  1. Scribe Java — простая OAuth библиотека для Java. Лицензия: MIT, рейтинг — 2731. English

7. Фреймворки и библиотеки для создания бизнес приложений на Java

  1. Codecademy EventHub — позволяет анализировать бизнес события, чтобы получать KPI, conversion rate и т. п. Бизнес метрики событий. Лицензия: MIT, рейтинг — 1043. English

8. Сериализация (serializer) и работа с файлами (I/O)

  1. Square Okio Современный I/O API для Java. Лицензия: Apache 2, рейтинг — 1243. English

9. Работа с изображением и видео

  1. Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг — 2219. English

10. Логирование (logging)

  1. Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг — 1308. English

2. Базы данных и поисковые системы

1. Базы данных и хранилища

  1. Thinkaurelius Titan — распределенная графическая база данных. Лицензия: Apache 2, рейтинг — 2846. English

2. Поисковые системы

  1. Elasticsearch — одна из самых популярных систем распределенного облачного поиска.. Лицензия: Apache 2, рейтинг — 11833. English

3. Клиенты и драйверы баз данных

  1. Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). . Лицензия: Apache 2, рейтинг — 3603. English

4. Маппинг объектов в базы данных (ORM и т. п.)

  1. HikariCP HikariCP — быстрая, надежная и легкая библиотека для создания JDBC connection pool с минимальными накладными расходами. Лицензия: Apache 2, рейтинг — 1542. English

3. Работа с данными

1. Системы, для обработки данных (работа с грязными данными, анализ и т.п.)

  1. Storm — распределенная и устойчивая к ошибкам обработка данных в реальном времени: потоковая обработка, непрерывные вычисления, распределенный RPC и другое. Лицензия: Apache 2, рейтинг — 8636. English

2. Большие данные (big data)

  1. Apache Storm — зеркало для Apache Storm — свободную и распределенную систему обработки данных в реальном времени, аналог Hadoop, но для быстрой потоковой обработки данных, может использоваться с любым языком программирования… Лицензия: Apache 2, рейтинг — 2098. English

4. Машинное обучение, нейроные сети, естественный языки

1. Машинное обучение и нейроные сети

  1. Airbnb Aerosolve Библиотека для машинного обучения, дружелюбная к пользователям (простая в настройке и т. п.). Лицензия: Apache 2, рейтинг — 1672. English
Читайте также:  Css select tag in class

2. Работа с естественными языками (NLP)

  1. Stanfordnlp CoreNLP Stanford CoreNLP: Java библиотека для работы с Stanford NLP (инструментами для анализа и работы с текстом на естественных языках, например английским). Лицензия: GNU 2, рейтинг — 871. English

5. Интеграция

1. Интеграция

  1. Jmxtrans Интеграция JVM с „внешним мира“ (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг — 708. English

2. Парсеры (Parser)

  1. Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector… Лицензия: Apache 2, рейтинг — 3323. English

3. Работа с Json

  1. Alibaba Fastjson Быстрый JSON обработчик. Лицензия: Apache 2, рейтинг — 2605. English

4. Интеграция с Api разных систем (соц. сетей и т. п.)

  1. Twitter Zipkin Zipkin это распределенная системы отслеживания, которая используется Twitter для сборк информации о работе всех его различных сервисов. Лицензия: Apache 2, рейтинг — 2442. English

5. Работа с биткойном

  1. XChange XChange это Java библиотека предоставляющая удобный API для взаимодействия с более чем 50+ Bitcoin и Altcoin обменными биржами. Лицензия: MIT, рейтинг — 455. English

6. Работа с сетью

1. Веб сервера и сервера приложений (web server & application server)

  1. Wildfly — сервер приложений (Application Server). Лицензия: GNU Lesser 2.1, рейтинг — 1386. English

2. Сеть и сокеты

  1. Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2, рейтинг — 4847. English

3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений

  1. LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2, рейтинг — 3137. English

4. Работа с http и ssh

  1. Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2, рейтинг — 5022. English

5. Работа с rest

  1. Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2, рейтинг — 5945. English

7. Инструменты для упрощения разработки

1. IDE

  1. JetBrains Intellij Сommunity IntelliJ IDEA Community Edition — одна из лучший IDE для Java. Лицензия: Apache 2, рейтинг — 2068. English

2. Инструменты и библиотеки для сборки, конфигурирования и развертывания Java приложений- 8 проектов

2. Инструменты и библиотеки для сборки, конфигурирования и развертывания Java приложений

  1. Google Bazel — корректная, воспроизводимая и быстрая билд система для любых ситуаций. Лицензия: Apache 2, рейтинг — 2809. English

3. Производительность

  1. Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. . Лицензия: Apache 2, рейтинг — 4168. English

4. Генерация кода

  1. Google Auto — коллекция генераторов исходного кода в Java… Лицензия: Apache 2, рейтинг — 1442. English

5. Анализ исходного кода

  1. SonarQube это свободная платформа для управлением качеством кода. Лицензия: GNU Lesser 3, рейтинг — 655. English

6. Прочее

  1. Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C… Лицензия: Apache 2, рейтинг — 2940. English

8. Облака

1. Системы на Java, работающие с облаками,

  1. Netflix SimianArmy — инструменты для поддержки ваших облачных операций. Chaos Monkey это гибкий инструментарий для создания устойчивых к случайным ошибкам приложений… Лицензия: Apache 2, рейтинг — 2892. English

9. Тестирование

1. Тестирование

  1. Junit Простой и популярный фреймворк для unit тестирования. Лицензия: Eclipse Public 1.0, рейтинг — 3662. English
Читайте также:  Узнать версию php через консоль

10. Другие языки программирования, написанные на Java

1. Языки программирования, написанные на Java

  1. Clojure Язык программирования Clojure. . Лицензия: Apache 2, рейтинг — 4332. English

2. Утилиты для других языков программирования, написанные на Java

  1. Go lang idea plugin IDE для языка программирования Goole Go, созданная на основе IntelliJ Platform. Лицензия: Apache 2, рейтинг — 1717. English

3. javascript

  1. Yuicompressor YUI Compressor — это система сжатия JavaScript и CSS файлов, которая удаляет лишние пробелы, безопасно обфуцирует локальные переменные до минимального возможного имени и т. д… Лицензия: BSD, рейтинг — 1840. English

11. Приложения на Java

1. Приложения и готовые продукты написанные на Java

  1. Square Keywhiz — cистема для хранения и управления секретными данными (TLS сертификаты, GPG ключи, API токены, данные доступа к базам данным). Лицензия: Apache 2, рейтинг — 979. English

2. Игры, написанные Java

  1. Bukkit Мод для Minecraft API. Лицензия: GNU 2, рейтинг — 1600. English

12. Прочее

1. Примеры исходного кода на java

  1. Java design patterns Очень хорошие примеры и справочник по паттернам разработки. . Лицензия: MIT, рейтинг — 6341. English

2. Результаты сравнения производительности кода на Java (benchmark)

  1. Jvm serializers — бенчмарки и сравнения производительности разных библиотек сериализации в JVM. Лицензия: ?, рейтинг — 970. English

3. Работа с git & github

  1. Gitblit Gitblit это свободный Java Git клиент для управления, просмотр и обслуживания Git репозиторий. Лицензия: Apache 2, рейтинг — 787. English

Немного статистики: На этой выборке 73% проектов использует лицензию Apache 2, GNU (все версии, включая GNU AFFERO, GNU Lesser) — 10%, Mit — 9%, BSD (все версии) — 8%, Eclipse Public — 3%, у 2% проектов лицензию найти не смог. Да, получается 105%, так как некоторые проекты используют сразу набор лицензий (либо на выбор, либо отдельные классы под отдельными лицензиями).

Так же есть редкие почти единичные использования лицензий: Creative Commons Attribution, Perl, CDDL 1, CPL Common Public, Public Domain (CC0), Unlicense.org.

Есть две забавные собственные открытие «лицензии»: такая и такая: The license includes this restriction: «The software shall be used for good, not evil.» If your conscience cannot live with that, then choose a different package.

1. Был написан специальный парсер, который выбирал все проекты, где языком программирования была Java и последнее обновление было в этом году, сгруппированные по количеству звезд (от большего к меньшим). Было выбрано чуть более тысячи проектов.

2. Полуавтоматически с помощью ключевых слов были удалены явные проекты для Android’a (это отдельный мир), проекты в которых сказано что они больше не поддерживаются, проекты, где описание полностью на китайском, японском и т.п. языках. Осталось около 500 проектов.

3. По ключевым словам сделано первое автоматическое разделение по категориям, автоматически найдены типы лицензий.

4. Вручную уточнил разделение по категориям, типы лицензий и перевел описание. Так же удалил ложные проекты (проекты Javascript’a в которым по ошибке поставили Java, хорошо замаскированные Android проекты и т.п.). Осталось 350 проектов, разделенных по категориям.

Update: Внимание, актуальная версия со много большим количеством ссылок, находиться теперь в моем github’e проекте useful-java-links, по этой ссылке.

P.S. Буду рад любым дополнениям (в том числе ссылкам на новые интересные Java проекты на github), замечаниям и указанием на любые ошибки в личке или комментариях. Просьба не стесняться.

Источник

Оцените статью