Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

collection libs on jvm #13

Open
oldratlee opened this issue Jul 8, 2019 · 1 comment
Open

collection libs on jvm #13

oldratlee opened this issue Jul 8, 2019 · 1 comment

Comments

@oldratlee
Copy link
Owner

oldratlee commented Jul 8, 2019

More than Persistent Collections ❤️

Contain persistent(immutable) collections/Functional Data Structures 📌

  • vavr ❤️ , VΛVΓ (Vavr, formerly called Javaslang) is a non-commercial, non-profit object-functional library that runs with Java 8+. It aims to reduce the lines of code and increase code quality.
  • cyclops ❤️ , An advanced, but easy to use, platform for writing functional applications in Java 8.
  • Functional Java , Functional programming in Java
  • procrastination , A small, straightforward library bringing the benefits of functional programming to Java 11
  • sophisticated FP Languages ❤️ have built-in Persistent Collections support 📌
    • Scala ❤️ , Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.
    • Clojure ❤️ , Clojure is a dynamic, general-purpose programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language, yet remains completely dynamic – every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.

Persistent(immutable) Collections/Functional Data Structures 📌

Primitive Collections/Type-specific Collections 💎

High Performance/Sophisticated Collection(-ish) 🚄

  • JCTools ❤️ , offer some concurrent data structures currently missing from the JDK. JCTools offers excellent performance. It's stable and in use by such distinguished frameworks as Netty, RxJava and others.
  • disruptor ❤️ , A High Performance Inter-Thread Messaging Library. Achieve very low-latency and high-throughput with our Java platform. Performance testing showed that using queues to pass data between stages of the system was introducing latency, so we focused on optimising this area.
  • High Scale Lib ❤️ , Cliff Click's high scale lib.
  • caffeine ❤️ , Caffeine is a high performance, near optimal caching library based on Java 8. For more details, see our user's guide and browse the API docs for the latest release.
  • concurrentlinkedhashmap , A high performance version of java.util.LinkedHashMap for use as a software cache.
    • Caffeine is the Java 8 successor to ConcurrentLinkedHashMap and Guava's cache. Projects should prefer Caffeine and migrate when requiring JDK8 or higher. The previous caching projects are supported in maintenance mode.
    • code repo: https://github.com/ben-manes/concurrentlinkedhashmap

Collections Backed by Storage 🗃

  • mapdb ❤️ , MapDB provides Java Maps, Sets, Lists, Queues and other collections backed by off-heap or on-disk storage. It is a hybrid between java collection framework and embedded database engine.

Collections with Distribution 🌏

Contain Collections, but NOT Persistent 😱

Related Resources

Maven Repository: collections https://mvnrepository.com/tags/collections

@oldratlee oldratlee changed the title collection lib on jvm collection libs on jvm Jul 8, 2019
@zavakid
Copy link

zavakid commented Jul 18, 2019

add:

@oldratlee oldratlee pinned this issue Jul 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants