GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - diffplug/durian: Guava's spikier (unofficial) cousin

BranchesTags
Open more actions menu

Latest commit

 

History

219 Commits
219 Commits

Folders and files

NameName
Last commit message
Last commit date
.ci
.ci
 
 
META-INF
META-INF
 
 
gradle/wrapper
gradle/wrapper
 
 
src/com/diffplug/common/base
src/com/diffplug/common/base
 
 
test/com/diffplug/common/base
test/com/diffplug/common/base
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
CHANGES.md
CHANGES.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
build.gradle
build.gradle
 
 
build.properties
build.properties
 
 
durian.png
durian.png
 
 
durian.svg
durian.svg
 
 
durian.svg.license
durian.svg.license
 
 
gradle.properties
gradle.properties
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
spotless.eclipseformat.xml
spotless.eclipseformat.xml
 
 
spotless.importorder
spotless.importorder
 
 
spotless.license.java
spotless.license.java
 
 

Repository files navigation

Durian: Guava's spikier (unofficial) cousin

Maven artifact Latest version Javadoc License Apache

Changelog Travis CI Live chat

Guava has become indispensable for many Java developers. Because of its wide adoption, it must be conservative regarding its minimum requirements.

Durian complements Guava with some features which are too spiky for Guava, such as:

  • One-liner exception handling for Java 8 functional interfaces (even with checked exceptions).
  • A simple replacement for the mess of PrintStream, OutputStream, Writer, etc. when all you want is to pipe some strings around.
  • Given a node in a tree, and a Function<Node, List<Node>>, create a Stream for traversing this tree (breadth-first, depth-first, etc.).
  • An enum for handling comparisons in a pattern-matchey way.
  • Guava's Suppliers, Predicates, and Functions converted to Java 8, and a new Consumers class to round it out.
  • A few other carefully-curated Java 8 goodies:
    • Box and Box.Nullable
    • Either
    • StackDumper
    • MoreCollectors
    • FieldsAndGetters

Durian's only requirement is Java 8 or greater, no other libraries are needed (not even Guava).

Contributions are welcome, see the contributing guide for development info.

Related

If you have a Box, but you'd like to subscribe to changes in its value, you should look at RxBox in DurianRx.

Acknowledgements

  • The API and tests for Suppliers, Functions, and Predicates are all verbatim from Guava.
  • StringPrinter.toOutputStream() borrows heavily from WriterOutputStream, inside Apache commons-io.
  • DurianPlugins is inspired by RxJava's plugin mechanism.
  • Formatted by spotless, as such.
  • Bugs found by findbugs, as such.
  • OSGi metadata generated by goomph, which leverages Peter Kriens' bnd.
  • Scripts in the .ci folder are inspired by Ben Limmer's work.
  • Built by gradle.
  • Tested by junit.
  • Maintained by DiffPlug.

About

Guava's spikier (unofficial) cousin

Resources

Readme
Apache-2.0 license

Contributing

Contributing
Activity
Custom properties

Stars

292 stars

Watchers

14 watching

Forks

26 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.