357 lines
16 KiB
HTML
357 lines
16 KiB
HTML
<h1 id="awesome-groovy-awesome">Awesome Groovy <a
|
||
href="https://github.com/sindresorhus/awesome"><img
|
||
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p>Curated list of awesome groovy libraries, frameworks and resources.
|
||
Inspired by many other awesome-* repositories. This awesome collection
|
||
is also available on <a
|
||
href="https://groovy.zeef.com/kunal.dabir">Groovy.ZEEF.com</a>.</p>
|
||
<ul>
|
||
<li><a href="#awesome-groovy">Awesome Groovy</a>
|
||
<ul>
|
||
<li><a href="#build-tools-setup-and-ci">Build Tools, Setup and
|
||
CI</a></li>
|
||
<li><a href="#concurrency">Concurrency</a></li>
|
||
<li><a href="#database">Database</a></li>
|
||
<li><a href="#rich-applications">Desktop App Frameworks</a></li>
|
||
<li><a href="#http">HTTP</a></li>
|
||
<li><a href="#ide-and-editor-support">IDE and Editor Support</a></li>
|
||
<li><a href="#testing">Testing</a></li>
|
||
<li><a href="#code-analysis">Code analysis</a></li>
|
||
<li><a href="#web-frameworks">Web Frameworks</a></li>
|
||
<li><a href="#transpilers">Transpilers</a></li>
|
||
<li><a href="#static-web">Static Web</a></li>
|
||
<li><a href="#language-utilities">Language Utilities</a></li>
|
||
<li><a href="#file-system-utilities">File System Utilities</a></li>
|
||
<li><a href="#file-format-dsl">File Format DSL</a></li>
|
||
<li><a href="#scripting-tools">Scripting Tools</a></li>
|
||
<li><a href="#rule-engines">Rule Engines</a></li>
|
||
</ul></li>
|
||
<li><a href="#resources">Resources</a></li>
|
||
<li><a href="#contributing">Contributing</a></li>
|
||
<li><a href="#credits">Credits</a></li>
|
||
</ul>
|
||
<h2 id="build-tools-setup-and-ci">Build tools, setup and CI</h2>
|
||
<ul>
|
||
<li><a href="https://www.gradle.org/">Gradle</a> - A powerful build
|
||
system for the JVM</li>
|
||
<li><a href="https://github.com/groovy/GMavenPlus">GMavenPlus</a> - A
|
||
rewrite of GMaven, a Maven plugin for Groovy</li>
|
||
<li><a href="https://sdkman.io">SDKMAN</a> - The Software Development
|
||
Kit Manager (Previously known as GVM)</li>
|
||
<li><a href="https://github.com/cbmarcum/skeletal">skeletal</a> - A
|
||
simple project creation tool that uses packaged templates (successor of
|
||
Lazybones)</li>
|
||
<li><a href="https://github.com/pledbrook/lazybones">Lazybones</a> - A
|
||
simple project creation tool that uses packaged project templates.</li>
|
||
<li><a href="https://github.com/jenkinsci/job-dsl-plugin">Jenkins
|
||
job-dsl-plugin</a> - A Groovy DSL for Jenkins Jobs</li>
|
||
<li><a href="https://github.com/kdabir/travis-groovy">travis-groovy</a>
|
||
- execute groovy scripts on travis-ci</li>
|
||
<li><a
|
||
href="https://play.google.com/store/apps/details?id=com.tambapps.android.grooidshell">Android
|
||
Groovy Shell</a> - code and execute groovy scripts directly on your
|
||
smartphone</li>
|
||
</ul>
|
||
<h2 id="ide-and-editor-support">IDE and Editor Support</h2>
|
||
<ul>
|
||
<li><a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a> - The
|
||
Most Intelligent IDE for the Java Platform</li>
|
||
<li><a
|
||
href="https://marketplace.eclipse.org/content/groovygrails-tool-suite-ggts-eclipse">Groovy
|
||
Grails Tool Suite</a> - Eclipse-based IDE optimized for developing,
|
||
debugging and executing Groovy and Grails applications</li>
|
||
<li><a href="http://groovyconsole.appspot.com">Groovy Web Console</a> -
|
||
The online Groovy console</li>
|
||
<li><a href="https://github.com/rundis/LightTable-Groovy">LightTable
|
||
Plugin</a> - LightTable Support</li>
|
||
<li><a href="https://spacevim.org/layers/lang/groovy/">SpaceVim</a> -
|
||
SpaceVim <code>lang#groovy</code> layer</li>
|
||
<li><a href="https://gist.github.com/kdabir/2203530">Sublime Text
|
||
2/3</a> - Run groovy scripts from Sublime Text</li>
|
||
</ul>
|
||
<h2 id="web-frameworks">Web Frameworks</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/grails/grails">Grails</a> - A powerful
|
||
web application framework based on the Groovy language</li>
|
||
<li><a href="http://micronaut.io/">Micronaut</a> - A brand new
|
||
microservices framework created by the Grails team</li>
|
||
<li><a href="https://projects.spring.io/spring-boot">Spring-Boot</a> -
|
||
Spring Boot makes it easy to create stand-alone, production-grade Spring
|
||
based Applications that can you can “just run”. Use Groovy as your
|
||
coding language.</li>
|
||
<li><a href="https://github.com/gaelyk/gaelyk">Gaelyk</a> - A
|
||
lightweight Groovy toolkit for Google App Engine Java</li>
|
||
<li><a href="https://github.com/kdabir/glide">Glide</a> - Create awesome
|
||
apps on Google App Engine in a snap</li>
|
||
<li><a href="https://github.com/ratpack/ratpack">Ratpack</a> - A toolkit
|
||
for JVM web applications</li>
|
||
<li><a href="https://github.com/javaConductor/gserv">gServ</a> - A
|
||
Groovy toolkit for creating SPAs and REST based micro-services without
|
||
the need for a container (Tomcat, JBoss, etc.).</li>
|
||
</ul>
|
||
<h2 id="database">Database</h2>
|
||
<ul>
|
||
<li><a href="https://gorm.grails.org">GORM</a> - Grails ORM, but can be
|
||
used stand-alone without Grails</li>
|
||
<li><a href="https://github.com/poiati/gmongo">Gmongo</a> - A Groovy
|
||
wrapper to the mongodb Java driver</li>
|
||
<li><a href="https://github.com/kdabir/gstorm">Gstorm</a> - A simple ORM
|
||
for simple databases and CSV files to be used in groovy scripts</li>
|
||
<li><a href="https://github.com/EqualExperts/Tayra">Tayra</a> -
|
||
Incremental backup tool for MongoDB</li>
|
||
<li><a
|
||
href="https://github.com/tlberglund/groovy-liquibase">Groovy-liquibase</a>
|
||
- Yet Another Groovy DSL for Liquibase</li>
|
||
<li><a href="https://github.com/cjstehno/effigy">Effigy</a> - Groovy
|
||
annotation-driven JDBC row mapping framework (abandoned)</li>
|
||
<li><a
|
||
href="https://github.com/elastic/elasticsearch-groovy">elasticsearch-groovy</a>
|
||
- Elasticsearch Groovy client</li>
|
||
</ul>
|
||
<h2 id="rich-application">Rich Application</h2>
|
||
<ul>
|
||
<li><a href="http://griffon-framework.org/">Griffon</a> - Griffon is an
|
||
application framework for developing desktop applications in the
|
||
JVM</li>
|
||
<li><a href="http://groovyfx.org/">GroovyFx</a> - GroovyFX provides a
|
||
Groovy binding for JavaFX 2.0.</li>
|
||
</ul>
|
||
<h2 id="http">HTTP</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/jgritman/httpbuilder">Http-Builder</a> -
|
||
HTTPBuilder is the easiest way to manipulate HTTP-based resources from
|
||
the JVM</li>
|
||
<li><a href="https://github.com/http-builder-ng/http-builder-ng">HTTP
|
||
Builder NG</a> - HTTP Builder NG is a modern Groovy DSL for making http
|
||
requests.</li>
|
||
<li><a href="https://github.com/http-builder-ng/gradle-http-plugin">HTTP
|
||
Builder NG Gradle Plugin</a> - Gradle plugin providing HTTP Builder NG
|
||
support in a Gradle build configuration.</li>
|
||
<li><a
|
||
href="https://github.com/eginez/AsyncRestClient">AsyncRestClient</a> -
|
||
Combine the power of RESTClient with RxGroovy for async http calls</li>
|
||
<li><a
|
||
href="https://github.com/jwagenleitner/groovy-wslite">Groovy-wslite</a>
|
||
- Lightweight SOAP and REST webservice clients for Groovy</li>
|
||
<li><a href="https://github.com/tambapps/hyperpoet">Hyperpoet</a> -
|
||
Easy-to-use and customizable HTTP client for Groovy</li>
|
||
</ul>
|
||
<h2 id="testing">Testing</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/spockframework/spock">Spock</a> - The
|
||
Enterprise-ready testing and specification framework.</li>
|
||
<li><a href="https://github.com/geb/geb">Geb</a> - Very Groovy Browser
|
||
Automation</li>
|
||
<li><a href="https://github.com/betamaxteam/betamax">Betamax</a> -
|
||
Betamax is a tool for mocking external HTTP resources such as web
|
||
services and REST APIs in your tests.</li>
|
||
<li><a href="https://github.com/TouK/http-mock-server">HTTP Mock
|
||
Server</a> - HTTP Mock Server allows to mock HTTP request using groovy
|
||
closures.</li>
|
||
<li><a href="https://github.com/cjstehno/ersatz">Ersatz Mock Server</a>
|
||
- A simple and expressive simulated HTTP server for testing client code
|
||
with configurable responses.</li>
|
||
<li><a href="https://agorapulse.github.io/dru/">Dru</a> - Data
|
||
Reconstruction Utility loads data from external sources JSON, YML for
|
||
easy testing GORM, DynamoDB or just plain POJOs.</li>
|
||
<li><a href="https://agorapulse.github.io/gru/">Gru</a> - Groovy HTTP
|
||
Testing Framework for running integration and semi-ingetration tests for
|
||
any HTTP backend with native unit test support for Grails and Spring
|
||
MVC.</li>
|
||
</ul>
|
||
<h2 id="concurrency">Concurrency</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/GPars/GPars">GPars</a> - The GPars
|
||
concurrency and parallelism framework for the JVM</li>
|
||
<li><a href="https://github.com/ReactiveX/RxGroovy">RxGroovy</a> -
|
||
RxJava bindings for Groovy</li>
|
||
<li><a href="https://vertx.io/">Vertx</a> - Vert.x is a lightweight,
|
||
high performance application platform for the JVM</li>
|
||
</ul>
|
||
<h2 id="code-analysis">Code Analysis</h2>
|
||
<ul>
|
||
<li><a href="http://codenarc.sourceforge.net/">CodeNarc</a> - Static
|
||
analysis tool for Groovy</li>
|
||
<li><a href="https://github.com/pmayweg/sonar-groovy">Sonar-Groovy</a> -
|
||
SonarQube Groovy plugin</li>
|
||
</ul>
|
||
<h2 id="transpilers">Transpilers</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/chiquitinxx/grooscript">Grooscript</a> -
|
||
Converts your Groovy code to Javascript</li>
|
||
</ul>
|
||
<h2 id="static-web">Static Web</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/sysgears/grain">Grain</a> - Static Web
|
||
Site Building Framework For Groovy</li>
|
||
<li><a href="https://github.com/kobo/gaiden">Gaiden</a> - Gaiden is a
|
||
tool that makes it easy to create documentation with Markdown.</li>
|
||
</ul>
|
||
<h2 id="language-utilities">Language Utilities</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/mperry/functionalgroovy">Functionalgroovy</a> -
|
||
Functional programming in Groovy</li>
|
||
<li><a
|
||
href="https://github.com/timyates/groovy-stream">Groovy-stream</a> - A
|
||
collection of classes to give a fluent builder for Streams (Lazy Groovy
|
||
Generators)</li>
|
||
<li><a href="https://github.com/johnnywey/flipside">Flipside</a> -
|
||
Simple Groovy options library</li>
|
||
<li><a
|
||
href="https://github.com/timyates/groovy-common-extensions">groovy-common-extensions</a>
|
||
- Lets you add things commonly useful to the Groovy language via the
|
||
extension system</li>
|
||
<li><a
|
||
href="https://github.com/dnahodil/groovy-extra-list-behaviour">groovy-extra-list-behaviour</a>
|
||
- Adds extra methods to Lists via the extension system</li>
|
||
<li><a href="https://github.com/gperfutils">GPerfUtils</a> -
|
||
Groovy-based tools verifying performance of your code
|
||
<ul>
|
||
<li><a href="https://github.com/gperfutils/gprof">gprof</a> - The
|
||
profiling module for Groovy</li>
|
||
<li><a href="https://github.com/gperfutils/gbench">gbench</a> - The
|
||
benchmarking module for Groovy</li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/kayr/fuzzy-csv">Fuzzy-CSV</a> - Simple
|
||
lightweight data processing library, useful for shaping/processing your
|
||
tabular data before its consumed by another service or library.</li>
|
||
</ul>
|
||
<h2 id="data-processing">Data Processing</h2>
|
||
<ul>
|
||
<li><a href="https://www.nextflow.io/">Nextflow</a> - Groovy DSL for
|
||
Data-driven computational pipelines</li>
|
||
</ul>
|
||
<h2 id="file-system-utilities">File System Utilities</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ysb33r/groovy-vfs">Groovy-Vfs</a> - A
|
||
DSL for Groovy on top of Apache VFS2</li>
|
||
<li><a href="https://github.com/kdabir/directree">Directree</a> - A
|
||
Simple DSL to create Directory Tree with Text Files</li>
|
||
</ul>
|
||
<h2 id="dsls">DSLs</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/craigburke/document-builder">document-builder</a>
|
||
- A document builder for Groovy for PDF or Word documents.</li>
|
||
<li><a href="http://spreadsheet.dsl.builders/">spreadsheet-builder</a> -
|
||
Spreadsheet builder provides convenient way how to create MS Excel
|
||
OfficeOpenXML Documents (XSLX)</li>
|
||
<li><a href="http://xlson.com/groovycsv/">GroovyCSV</a> - A simple CSV
|
||
parsing library for groovy</li>
|
||
<li><a
|
||
href="https://groogle.gitlab.io/groogle/latest/index.html">Groogle</a> -
|
||
A Groovy DSL written to use Google services APIs.</li>
|
||
</ul>
|
||
<h2 id="scripting-tools">Scripting Tools</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/Vorlonsoft/EasyDokkaPlugin">EasyDokkaPlugin</a>
|
||
- Gradle script plugin to generate documentation by Dokka documentation
|
||
engine for Java and Kotlin</li>
|
||
<li><a
|
||
href="https://github.com/Vorlonsoft/GradleMavenPush">GradleMavenPush</a>
|
||
- Gradle script plugin to upload Gradle Artifacts to Maven
|
||
repositories</li>
|
||
<li><a href="https://github.com/remkop/picocli">picocli</a> - Parser
|
||
library and framework for CLI. Usage help with ANSI colors.
|
||
Autocomplete. Nested subcommands and more.</li>
|
||
<li><a href="https://github.com/aestasit/sshoogr">sshoogr</a> - DSL
|
||
library for working with remote servers through SSH.</li>
|
||
</ul>
|
||
<h2 id="rule-engines">Rule Engines</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/zhaber/grules">grules</a> - rule engine
|
||
for data preprocessing</li>
|
||
<li><a href="https://github.com/jdereg/n-cube">n-cube</a> - a Rules
|
||
Engine, Decision Table, Decision Tree, Templating Engine, and Enterprise
|
||
Spreadsheet, built as a hyper-space.</li>
|
||
</ul>
|
||
<h1 id="resources">Resources</h1>
|
||
<h2 id="official-resources">Official Resources</h2>
|
||
<ul>
|
||
<li><a href="http://www.groovy-lang.org/">The official groovy home</a> -
|
||
Groovy’s new home</li>
|
||
<li><a href="https://github.com/apache/groovy">Groovy’s source</a> -
|
||
Groovy’s source code mirrored on Github</li>
|
||
<li><a href="http://www.groovy-lang.org/mailing-lists.html">Groovy
|
||
mailing lists</a> - Note the new mailing list</li>
|
||
<li><a href="http://www.groovy-lang.org/documentation.html">Official
|
||
Documentation</a> - the definitive source of groovy documentation</li>
|
||
</ul>
|
||
<h2 id="try-groovy-in-browser">Try Groovy in Browser</h2>
|
||
<ul>
|
||
<li><a href="https://gwc-experiment.appspot.com/">Groovy Web
|
||
Console</a></li>
|
||
<li><a href="https://groovy-playground.appspot.com/">Groovy
|
||
Playground</a></li>
|
||
</ul>
|
||
<h2 id="groovy-code-examples">Groovy Code Examples</h2>
|
||
<ul>
|
||
<li><a href="http://mrhaki.blogspot.com/">MrHaKi’s Goodness</a> - Look
|
||
out for entries titled “Groovy Goodness” , “Grails Goodness”, Gradle
|
||
Goodness”</li>
|
||
<li><a href="http://pleac.sourceforge.net/pleac_groovy/">PLEAC
|
||
Groovy</a> - Groovy is one of the 3 languages out of 32, having
|
||
completed 100% of PLEAC examples.</li>
|
||
</ul>
|
||
<h2 id="staying-up-to-date">Staying up to date</h2>
|
||
<ul>
|
||
<li><a href="http://groovycalamari.com/">Groovy Calamari</a> - Weekly
|
||
curated publication about the Groovy Ecosystem</li>
|
||
<li><a
|
||
href="http://glaforge.appspot.com/category/Groovy%20Weekly">Groovy
|
||
Weekly</a> - Groovy weekly newsletter</li>
|
||
<li><a href="https://grydeske.dk/news/index">Grails Diary</a> -
|
||
Particulary useful for Grails developers</li>
|
||
<li><a href="https://nofluffjuststuff.com/groovypodcast">Groovy
|
||
Podcast</a> - Ken Kousen and Baruch Sadogursky discuss news and insight
|
||
from the Groovy ecosystem.</li>
|
||
</ul>
|
||
<h2 id="interactive-learning">Interactive Learning</h2>
|
||
<ul>
|
||
<li><a href="http://nadavc.github.io/groovykoans/">Groovy-Koans</a> -
|
||
Collection of small exercises in the form of unit tests</li>
|
||
</ul>
|
||
<h2 id="blogs-of-core-committer">Blogs of core committer</h2>
|
||
<ul>
|
||
<li><a href="http://glaforge.appspot.com/">Guillaume Laforge’s
|
||
blog</a></li>
|
||
<li><a href="http://melix.github.io/blog/">Cédric Champeau’s
|
||
blog</a></li>
|
||
<li><a href="http://blackdragsview.blogspot.com/">Jochen Theodorou’s
|
||
blog</a></li>
|
||
<li><a href="http://grailsblog.objectcomputing.com/">Grails Team
|
||
blog</a></li>
|
||
</ul>
|
||
<h2 id="conferences">Conferences</h2>
|
||
<ul>
|
||
<li><a href="https://communityovercode.org/">Community Over Code</a> -
|
||
have a Groovy Track</li>
|
||
<li><a href="http://greachconf.com">Greachconf</a> (discontinued)</li>
|
||
<li><a href="https://gr8conf.eu">GR8Conf Europe</a> (discontinued)</li>
|
||
<li><a href="http://gr8conf.us">GR8Conf USA</a> (discontinued)</li>
|
||
</ul>
|
||
<h1 id="contributing">Contributing</h1>
|
||
<p>Fork this repository, edit this file and send a pull request.</p>
|
||
<h2 id="using-awesome.groovy-script">Using awesome.groovy script</h2>
|
||
<p>You can use the <code>awesome.groovy</code> script to search awesome
|
||
projects on github and generate the entry prepoulated with project name,
|
||
repo url and description in markdown format. All you need to do is place
|
||
it under right group in the markdown list in <code>README.md</code>.</p>
|
||
<h3 id="examples">Examples</h3>
|
||
<p>to find out repos where language is groovy and whose name contain
|
||
gpars and</p>
|
||
<pre><code>./awesome.groovy -l groovy gpars</code></pre>
|
||
<p>to find out repos by user ‘kdabir’ and name contains glide</p>
|
||
<pre><code>./awesome.groovy -u kdabir glide</code></pre>
|
||
<p>to find out repos whose name contains glide</p>
|
||
<pre><code>./awesome.groovy glide</code></pre>
|
||
<p>If you are lazy to download the repo, an easy way is:</p>
|
||
<pre><code>groovy "https://git.io/awesome" -l groovy glide</code></pre>
|
||
<h1 id="credits">Credits</h1>
|
||
<p>To all the awesome-* repos out there and their aggreators like <a
|
||
href="https://github.com/erichs/awesome-awesome">this</a> and <a
|
||
href="https://github.com/bayandin/awesome-awesomeness">this</a>.</p>
|