30 open-source projects similar to montagejs/collections, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Collections alternative.
This repository is a collection of JavaScript coding challenges and a comprehensive interview guide. It provides reference implementations and educational examples designed to help developers master language fundamentals and prepare for technical interviews. The project covers a wide array of specialized implementations, including functional programming patterns like currying and partial application, as well as asynchronous patterns for concurrency control. It also includes practical examples of Document Object Model manipulation and the implementation of common data structures such as stacks
Kotlinx.collections.immutable is a persistent data structure library for Kotlin that provides immutable lists, sets, and maps for state management. It enforces strict immutability by exposing read-only interfaces that block unauthorized modifications at compile time, while persistent structural sharing allows modified copies to efficiently reuse underlying memory storage with the original collection. Multiple insertions and removals can be batched through temporary mutable builder interfaces to instantly produce new persistent collections without intermediate allocations. Additionally, stand
This is an in-memory B-Tree data structure implementation for Go. It provides a memory-resident collection that maintains sorted elements to enable efficient retrieval, modification, and the management of sorted key-value maps. The project supports ordered mutable collections and sorted key-value stores, allowing for fast lookups, insertions, and deletions while preserving the sort order of keys. It provides capabilities for range searching within sorted memory structures and maintains the organization of datasets through self-balancing node splitting and recursive binary search.
collect.js is a dependency-free JavaScript library that provides a fluent, chainable interface for manipulating arrays and objects. It mirrors the Laravel Collection API, offering a consistent set of methods for data transformation across JavaScript and Laravel backend environments. The library stores collection data as plain arrays internally and supports fluent method chaining, where each method returns a new collection instance. The library distinguishes itself by closely replicating the Laravel Collection API in JavaScript, mapping each PHP method to an equivalent JavaScript implementatio
uthash is a macro-based data structure library for C that provides header-only implementations of hash tables, linked lists, stacks, and dynamic arrays. It allows for key-based lookups and organized data storage without requiring external library linking. The library uses intrusive linking to embed metadata directly into user-defined structures via macros. This approach enables in-place structure extension, allowing hash and link fields to be added to existing structs without separate memory allocations for container nodes. The project also covers specialized memory and data stream managemen
This project is an ECMAScript 2015 reference guide and JavaScript language cheat sheet. It provides a concise summary of the language specifications, syntax updates, and new features introduced in the 2015 standard. The guide serves as a technical overview of modern language patterns used to manage modular code structures and asynchronous operations. It functions as a reference for implementing current coding standards and studying core updates to the language. The content covers a wide range of capabilities, including asynchronous programming, object modeling, and module management. It deta
ES6-for-humans is an educational resource and technical manual providing a structured tutorial and programming guide for the ECMAScript 2015 language standards. It serves as a reference for transitioning from legacy JavaScript to modern syntax and coding patterns. The project covers modern language constructs including block-scoped variables, arrow functions, and class hierarchies. It provides guidance on implementing functional programming patterns via generators and lexically scoped functions, as well as object-oriented design using prototype-based inheritance. The documentation covers asy
Dollar is a functional programming library for Swift that provides a comprehensive toolkit for collection manipulation, string processing, mathematical calculations, and date and time management. It serves as a utility suite for filtering, aggregating, and restructuring arrays and dictionaries. The project implements functional programming patterns such as currying, memoization, and function composition. It also features a chainable wrapper interface that allows multiple data transformations to be applied sequentially before extracting a final result. The library covers a wide range of capab
This is a video course that teaches JavaScript from scratch, covering fundamentals like variables, functions, scope, closures, and data types through 88+ lessons organized into 15 modules. The course uses a live-coding pedagogy where students code alongside pre-recorded video lessons, with each lesson providing starter and solution files for self-paced practice. The curriculum focuses on browser-native APIs, teaching DOM manipulation, event handling, and data fetching without external frameworks. Students build real-world projects like image galleries, drawing tools, and audio visualizers thr
The Disruptor is a lock-free inter-thread messaging library and high-performance event bus. It implements a concurrent ring buffer designed for high-concurrency and low-latency message sequencing. The project utilizes a specific messaging architecture to eliminate lock contention, enabling high-throughput event routing and the exchange of continuous event streams between threads. It ensures strict first-in-first-out ordering and immediate data visibility across processing threads. The library provides capabilities for lock-free data streaming, sequential data ordering, and sequence-based eve
This project is a JavaScript educational repository and programming courseware. It provides a collection of code examples and practical projects designed for learning the JavaScript programming language. The repository covers language learning through hands-on exercises, including the implementation of coding projects and algorithm practice. It focuses on both frontend web development and the application of object oriented programming. The content includes materials for managing variables and data types, performing mathematical operations, and manipulating strings and dates. It also provides
Hutool is a comprehensive suite of Java extensions designed to serve as a standard library extension. Its primary purpose is to reduce development boilerplate for common programming tasks and data manipulation through a collection of utility classes. The project provides specialized toolkits for database management using active record patterns and connection pooling, as well as network communication via a simplified HTTP client and asynchronous socket management. It includes security and identity capabilities such as symmetric and asymmetric encryption, image captcha generation, and JWT token
Remeda is a type-safe functional utility library for TypeScript designed for building data transformation pipelines. It provides a toolkit of helper functions for manipulating arrays and objects while maintaining strict type integrity throughout the process. The library is characterized by its support for both data-first and data-last calling styles. It utilizes lazy evaluation to process data collections, evaluating transformations only when the final result is requested to avoid creating intermediate collection copies. The toolkit covers collection manipulation, function composition, and t
This library provides a collection of specialized data structures for the Swift language that extend the standard library with advanced container types. It includes implementations for double-ended queues using ring-buffers, priority queues based on min-max heaps, and memory-efficient bit-set and bit-array storage for boolean values. The project features ordered collections that maintain elements in sorted order via B-tree implementations, as well as persistent sets and dictionaries that use compressed prefix trees to share data between mutated copies. It also provides specialized containers
Ramda is a functional JavaScript standard library and toolset for immutable data transformation and composition. It provides a comprehensive suite of pure utility functions designed to enable declarative data processing pipelines. The library is distinguished by its use of automatic function currying and a data-last argument order. These design patterns allow multi-argument functions to be partially applied, simplifying the construction of processing chains where data is passed through a sequence of operations. The toolkit covers broad data manipulation capabilities, including list processin
mobx-react is a library that provides state bindings to connect React components to MobX observable state. It functions as a component state synchronizer, ensuring that user interface elements automatically re-render only when the specific observed data they consume changes. The project enables a decoupled state architecture by moving business logic and domain state into standalone stores, separating data management from the React component tree. It facilitates global state distribution across deep component hierarchies using providers and context to avoid manual prop drilling. The library c
This is a thread-safe in-memory cache library for Go that automatically evicts the least recently used items when capacity is reached. It provides a fixed-size memory cache designed to maintain a constant memory footprint by removing the oldest entries as new data arrives. The system includes an eviction manager that executes custom callbacks when entries are purged to facilitate resource cleanup. It also supports time-based expiration, allowing for the automatic removal of items after a specified time-to-live duration. The library covers general caching capabilities including cache inspecti
Functional-Light-JS is a JavaScript functional programming library designed to implement functional patterns within JavaScript applications. It serves as a toolkit for declarative data processing, immutable data management, and the construction of complex logic through higher-order functions. The library focuses on a pragmatic implementation of functional programming, providing utilities for curried argument application and function composition. It emphasizes the use of pure functions to calculate state updates and manage application data without side effects. The project covers broad capabi
This is a persistent data structure library for JavaScript that provides collections which prevent the direct mutation of objects and arrays. It serves as an immutable state management tool and functional programming utility, ensuring that data remains unchanged after creation to simplify change detection and state tracking. The library enables the maintenance of application state by producing new versions of data structures during updates. It focuses on efficient data comparison by checking actual content instead of memory references and supports a functional programming workflow to prevent
language-ext is a functional programming framework for C# that provides a suite of immutable data structures and monadic types. It enables the implementation of pure functional programming patterns, utilizing containers to manage side effects, optional values, and error handling. The library is distinguished by its advanced concurrency and state management tools, including a software transactional memory system and lock-free atomic references. It also provides specialized utilities for distributed systems, such as vector clocks for causality tracking and deterministic data conflict resolution
freecache is a high-performance, concurrent in-memory key-value store library for Go applications. It functions as a fixed-size cache that manages large volumes of data while eliminating garbage collection overhead through the use of preallocated memory and off-heap storage. The system maintains a predictable memory footprint by utilizing fixed memory allocation and circular buffer management, where new entries automatically overwrite the oldest data upon reaching capacity. It further reduces contention between simultaneous readers and writers through lock-striped concurrent access. The libr
Guava is a Java standard library extension and utility toolkit that provides optimized data structures, concurrency tools, and core extensions. It serves as a comprehensive set of helpers for Java development, focusing on reducing repetitive boilerplate logic. The project is distinguished by its specialized implementations of immutable collections, which ensure thread safety and data consistency by preventing accidental modification. It also includes a dedicated graph data structure library for modeling and traversing networks of interconnected nodes and edges, alongside advanced collection t
This is a browser-based Tetris game built with React, using Redux and Immutable.js to manage all game state in a single immutable store. The application renders the game board, next-block preview, and score display as React components, with state transitions that are predictable and support time-travel debugging through the Redux DevTools Extension. The game distinguishes itself through several integrated capabilities. It automatically adapts between keyboard and touch controls based on the user's input device, with configurable repeat rates for responsive gameplay. A persistence layer serial
Bigcache is a thread-safe, in-memory key-value store for Go designed to minimize garbage collection pauses. It functions as a memory-optimized cache capable of storing gigabytes of data while maintaining low latency during high-volume operations. The system avoids garbage collection overhead by managing memory through large byte arrays and manual allocation. It utilizes a circular-buffer layout to reuse space and lock-striped sharding to reduce contention during concurrent read and write access. The project provides capabilities for high-volume in-memory caching and low-latency data retrieva
This project is a single-producer single-consumer concurrent queue for C++ designed for lock-free data exchange between threads. It provides a thread-safe mechanism to transfer data without the use of mutexes or locks. The queue is implemented as a contiguous circular buffer that supports dynamic capacity growth to prevent data loss when the queue reaches its limit. It utilizes atomic synchronization and wait-free index management to coordinate data access between the writing and reading threads. The library covers inter-thread communication and buffer management, offering both blocking and
Immutable.js is a library of persistent data structures and a functional state management toolkit. It provides a collection of immutable objects and arrays that prevent direct mutation to ensure predictable state management in JavaScript applications. The library utilizes structural sharing to efficiently create new versions of data without full copying and implements lazy sequence processing to chain data transformations that execute only when values are requested. It also supports batch mutation processing, allowing multiple changes to be applied to a temporary mutable copy before returning
Sprig is a comprehensive library of helper functions designed to extend the Go text template engine. It provides a wide array of custom functions that can be injected into the engine to enable complex data manipulation and logic directly within templates. The project offers specialized capabilities for cryptography, including the generation of private keys, X.509 certificates, and secure password hashes. It also includes advanced logic extensions for semantic versioning comparison, ternary evaluations, and the resolution of environment variables from the host operating system. The library co
This project is a general-purpose PHP utility library offering a collection of helper classes and functions for string manipulation, array and collection processing, data validation, filesystem operations, and image processing. It provides foundational toolkits designed to handle common development tasks through standardized APIs. The library is distinguished by specialized subsystems for programmatic HTML generation and secure element construction, runtime code reflection, and object-oriented utilities such as virtual property management and event callback triggers. It also includes cryptogr
This project provides a header-only C++ wrapper for the Node-API, serving as a framework for building high-performance native addons for Node.js. It acts as a bridge between C++ and JavaScript, offering an object-oriented interface that simplifies the creation of compiled extensions while managing the complexities of the language boundary. The library distinguishes itself by providing type-safe abstractions for data marshalling and memory management, ensuring that native and script-side objects are tracked and reclaimed correctly. It includes mechanisms for coordinating asynchronous tasks bet
Rustpad is a self-hosted collaborative text editor and code environment. It functions as a containerized web application that uses an operational transformation engine to synchronize text changes across multiple browser clients in real time. The system is designed for database-free document synchronization, allowing users to host private environments for sharing code snippets without external database dependencies. It supports ephemeral document hosting, where shared spaces are automatically removed from memory after a period of inactivity. The application manages data through an in-memory d