Need help with streamsupport?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

159 Stars 19 Forks GNU General Public License v2.0 1.4K Commits 0 Opened issues


Backport of Java 8/9 API to Java 6/7 and Android. Moved from

Services available


Need anything else?

Contributors list

No Data

Maven Central Download


streamsupport is a backport of the Java 8

(functional interfaces) and
(streams) API for Android and users of Java 6 or 7 supplemented with selected additions from
which didn't exist back in Java 6.

Due to the lack of default interface methods and static interface methods in pre-Java 8 the API had to be slightly adjusted in these areas but still covers the full functionality scope of Java 8. In detail, static and default interface methods have been moved to companion classes in the same package that bear the identical name as the interface but with an "s" appended (e.g.


For ease of use, the default methods for most of the functional interfaces were NOT retained as abstract methods in the redefined interfaces (keeping them single method interfaces) - the missing default (and static) methods can always be found in the corresponding companion class.

The streamsupport API lives in the packages

respectively. So, it's not possible to simply import the
package in your code - you'd rather have to use
instead (see Readme.txt for details). While that is fine as long as you have full control over your source code there is the other common scenario of using a binary 3rd party dependency that has been compiled against the standard Java 8
API. In the latter case bytecode rewriting via ProGuard might be an option. ProGuard supports most Java 8 language features and the latest release can also replace the standard Java 8 stream API by the the streamsupport backport (cf. the Proguard documentation, especially the section titled "Java 8 stream API support").

The current stable release of streamsupport is


Want also lambdas?

Note that the streamsupport sourceforge site has been discontinued. New developments, if any, will take place here.

Please give feedback here if you experience any problems.


  • Java 8 / Java 9 Streams library backport
  • Java 8 / Java 9 CompletableFuture backport
  • Java 8 Parallel array operations backport
  • Java 8 Functional interfaces backport
  • Further java.util.concurrent enhancements from Java 7/8 backported to Java 6
  • Includes miscellaneous Java 8 / Java 9 goodies (Optional, StringJoiner, ...)
  • Supports Android - all versions, starting from Ice Cream Sandwich


dependencies {
    implementation 'net.sourceforge.streamsupport:streamsupport:1.7.2'



Example usage

import java.util.List;
import static;

List list = IntStreams.of(1, 2, 3, 4).boxed() .collect(toList());

List incremented = .map(i -> i + 1) .collect(toList());


Android developers using the Android Studio 3.x toolchain should have a look at the


Release Notes

Release Notes


GNU General Public License, version 2, with the Classpath Exception (and CC0 1.0 for JSR-166 derived code)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.