30 open-source projects similar to benjamine/jsondiffpatch, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Jsondiffpatch alternative.
MobX State Tree is a structured, tree-based state management library for JavaScript applications that combines typed model definitions with reactive snapshots and patch-based change tracking. It provides a reactive state container with runtime and compile-time type safety, where application state is defined as a tree of typed models with collocated actions, computed views, and lifecycle hooks for predictable state mutations. The library is built around an action-centric mutation model that encapsulates all state changes within named functions that directly modify the tree, supported by genera
This project is an ECMAScript proposal to introduce a native reactive state primitive to the JavaScript language. It defines a standard for fine-grained reactivity, providing a mechanism to track value dependencies and automatically propagate updates through a dependency graph. The specification focuses on managing computed values and side effects based on granular changes to state. It enables the synchronization of state updates across a dependency graph and the tracking of relationships between values and their observers without manual subscriptions. The proposal covers efficient value com
This project is a customizable browser text editor and a schema-driven document framework designed for building React-based WYSIWYG content editors. It replaces standard text areas with a system that represents content as a structured data tree rather than flat HTML, allowing for precise manipulation and validation of documents. The framework serves as an extensible content management interface and a TypeScript UI component library. It enables the development of specialized authoring tools through a plugin system and the use of strongly typed building blocks to ensure consistency across docum
Inertia is a server-driven frontend framework designed to create monolithic single page applications. It acts as a state synchronization protocol and client-side routing bridge, allowing developers to build interactive experiences using modern JavaScript component libraries while keeping routing and controllers on the server. This approach eliminates the need for a separate REST or GraphQL API layer by passing data from server controllers to frontend components as props via JSON payloads. The framework distinguishes itself by utilizing adapter-based integration to link various backend environ
Choo is a minimalist frontend framework providing a tiny foundation for building web applications. It functions as an event-driven application core that decouples business logic from rendering and includes a client-side router to manage browser history and URL mapping without page reloads. The project distinguishes itself through an architecture that combines a server-side rendering engine for generating static HTML strings with a stateful UI component library. This allows for the creation of self-contained interface elements that maintain internal data and persist across global renders. The
json-joy is a comprehensive library for building real-time collaborative applications and distributed systems. It provides a robust framework for managing shared JSON-like data structures that automatically merge concurrent edits from multiple users, ensuring consistent state across all replicas without requiring a central coordination server. The project distinguishes itself through a high-performance approach to data handling, utilizing conflict-free replicated data types and logical clock-based synchronization to maintain data integrity. It includes a specialized engine for navigating and
This project is a functional programming compiler and JavaScript transpiler that transforms a statically typed language into optimized JavaScript for web browsers. It serves as a frontend architecture framework, providing a static type system and a package manager that enforces semantic versioning. The compiler uses a type-checking engine with automatic type inference to prevent runtime errors and guide code refactoring. It implements a structural pattern for managing application state and rendering user interfaces through a virtual DOM, utilizing immutable data and purity-based state transit
Togetherjs is a real-time collaboration framework designed to synchronize application state, cursors, and navigation across multiple user sessions. It provides a synchronization tool for shared browsing and a signaling server to facilitate peer-to-peer communication. The project integrates audio chat and media streaming via peer-to-peer technology, allowing collaborators to engage in live voice communication. It includes a presence and identity manager to map session participants to custom profiles, names, and avatars. The framework covers a broad surface of collaborative capabilities, inclu
Datastar is a framework for hypermedia application development that enables the creation of reactive user interfaces using declarative HTML attributes. It focuses on server-driven state management, offloading application logic and state transitions to the backend to reduce frontend complexity. The project distinguishes itself through real-time UI streaming, using Server-Sent Events to push incremental DOM patches and state changes over a single long-lived connection. It synchronizes frontend and backend state by applying partial JSON updates to a client-side signal store and employs morphing-
Kinto is a cloud state backend designed for storing and synchronizing JSON data across multiple devices. It provides a centralized service for managing schema-less JSON records organized into buckets and collections, ensuring a consistent state through a REST API. The system supports collaborative data sharing by granting read and write access to specific documents or collections via user groups and permissions. It enables document synchronization using change feed tracking and deletion markers to update clients with the latest state. Capabilities include fine-grained access control, JSON sc
Kustomize is a declarative configuration manager and manifest customizer for Kubernetes. It functions as a patching engine that transforms base YAML files into environment-specific configurations through overlays and composition, allowing for the generation of complex deployments without modifying original source files. The tool distinguishes itself by using an overlay-based resource composition model to layer environment overrides on top of shared bases. It employs strategic merge patching and recursive base resolution to flatten inherited configurations into a final output set. The project
lit-html is a JavaScript HTML templating library and reactive UI template engine. It uses tagged template literals to render dynamic HTML templates, focusing on efficient partial updates to the DOM to minimize browser reflows. The library functions as a rendering tool for web components and supports server-side rendering to improve initial page load speeds and search engine optimization. Its capabilities cover the development of lightweight custom HTML elements and the management of dynamic HTML rendering. It includes support for high-performance list rendering and the handling of asynchrono
Schema.org - schemas and supporting software
Sapper is a universal web application framework and server-side rendering framework for Svelte. It enables the development of applications that render views on the server for fast initial loads and hydrate them on the client for subsequent interactivity. The project features a file-based routing engine that maps URL paths to components based on the file system structure. It also functions as a static site generator, exporting production-ready HTML, CSS, and JavaScript files for hosting in environments without a live server. The framework covers full-stack development capabilities, including
Funkin is a rhythm game engine and scriptable gameplay framework designed for creating musical battle games with synchronized note charts and audio. It functions as a comprehensive toolset for rhythm game modding, allowing for the addition of custom songs, characters, and stages through external assets and metadata. The project distinguishes itself through a dedicated modding system that supports priority-based asset overriding and a data patching utility for modifying JSON and XML configuration files via targeted merge operations. It utilizes a scriptable environment that executes external s
Kotlinx.html is a domain-specific language for Kotlin that provides a type-safe builder pattern for constructing HTML markup. By leveraging nested function calls and lambda expressions, the library enforces schema constraints at compile time to ensure the generation of valid document structures and the prevention of common syntax errors. The library distinguishes itself through an extension-based schema that allows developers to define custom tags and attributes without modifying the core source code. It supports both server-side rendering and direct browser document object model manipulation
Romm is a self-hosted game library manager and ROM management web interface. It serves as a central server for storing and categorizing game files and emulator firmware, providing a web-based browser to organize collections through automated library scanning and metadata retrieval. The project distinguishes itself by integrating a web-based emulator frontend that uses WebAssembly to play games directly in the browser. It further provides a game save synchronization server that uses SSH-based synchronization to transfer save states and progress between the server and registered handheld device
Tampermonkey is a userscript manager used for browser behavior modification and web page automation. It allows for the installation and management of custom scripts that inject JavaScript into web pages to change their appearance or functionality. The project enables cross-browser script synchronization to maintain a consistent set of modifications across multiple devices. It provides a mechanism to manage custom userscript collections and synchronize them via cloud accounts. The system covers a broad range of capabilities including the automation of repetitive tasks on specific websites and
GoJS is a JavaScript diagramming library and canvas-based visualization engine used to build interactive flowcharts, organizational charts, and network diagrams. It functions as a data-driven framework that binds JavaScript data models to visual elements, enabling bidirectional synchronization between the underlying data and the graphical representation. The library features a comprehensive graph layout engine capable of automatically arranging nodes into trees, grids, circles, or force-directed layouts. It distinguishes itself through a template-based system for generating visual parts and a
Records is a SQL database client designed for executing raw queries and managing result sets through a simplified interface. It provides a parameterized SQL executor to bind values to placeholders, ensuring safe data handling and preventing injection attacks, alongside a database transaction manager for grouping operations into atomic units. The project includes a dedicated command-line interface for running database statements and exporting query results directly to local files. This tooling allows for the conversion of SQL result sets into multiple serialization formats, including CSV, JSON
This is a Python fuzzy string matching library used for calculating string similarity and edit distances. It serves as a collection of string distance algorithms, a sequence alignment tool, and an approximate string search engine to measure text similarity. The library provides a wide array of metrics to quantify string closeness, including Levenshtein, Jaro-Winkler, Hamming, and Damerau-Levenshtein distances. It supports similarity analysis through longest common subsequence calculations, token-based comparisons, and weighted scoring to account for differences in content and word order. Bey
This project is an open-source 3D game engine designed for building high-fidelity games, simulations, and cinematic environments. It functions as a robotics simulation platform with native integration for ROS 2 to model robot controllers and sensors. The engine features a multi-threaded Forward+ physically based renderer that supports hardware-accelerated ray tracing and global illumination. The system is built on a modular extension architecture using Gems to add or replace features without modifying core binaries. It includes a native SDK for AWS cloud integration, enabling IAM authenticati
Django Tastypie is a framework for building RESTful web services that map Django models to API resources. It functions as a model-based API generator, automatically creating read-write endpoints for database models to enable standard CRUD operations via HTTP. The project serves as a multi-format data serializer and hypermedia API mapper. It converts database data into various response formats, including JSON, XML, and YAML, based on client requests, and transforms database relationships into navigable links for resource discovery. The toolkit includes a security implementation for user authe
icdiff is a command line text analyzer and side-by-side diff tool. It serves as a visual comparison utility that identifies modifications between two text files and renders them in a colored two-column layout within the terminal. The tool functions as a version control diff provider, allowing users to replace default difference engines with a side-by-side format. It utilizes ANSI color codes to highlight character-level changes, providing a visual method for terminal-based code review and text analysis. The system handles difference computation through line-based analysis and dynamic column
Immer is an immutable state management library used to create new versions of data structures. It allows the production of new state by mutating a temporary draft instead of using manual object spreading. The project implements structural sharing to reuse unchanged parts of a data tree between versions, which reduces memory consumption. It also functions as a JSON patch generator to calculate and output the differences between two state versions. To ensure data integrity, the library includes a state mutation protector that freezes data structures to detect and prevent accidental modificatio
kotlinx.serialization is an official Kotlin library that provides a multiplatform serialization framework for converting Kotlin objects to and from multiple data formats. It uses a Kotlin compiler plugin to generate serializer and deserializer code at compile time, avoiding runtime reflection and preserving type safety through annotations like @Serializable. The library supports JVM, JS, and Native targets with platform-specific runtime libraries, enabling consistent serialization across all Kotlin environments. The library distinguishes itself through its multi-format encoder-decoder abstr
go-cmp is a value comparison library for Go designed for use in test suites. It functions as a recursive data differ and assertion tool that determines if two complex data structures are semantically equal rather than relying on strict bitwise equality. The library provides a framework for defining specialized comparison logic, allowing users to register custom equality overrides for specific types. It includes mechanisms to manage how unexported fields are handled during traversal to prevent runtime panics during deep equality checks. The system utilizes reflection-based value traversal to
Spotless is a multi-language formatting orchestrator and Gradle plugin that automates code styling across various programming languages within a single build pipeline. It functions as a coordinator for multiple third-party formatters, a code style linting tool, and a system for inserting and updating standardized license headers. The project distinguishes itself through git-integrated style enforcement, using pre-push hooks and git references to apply formatting only to modified files or lines. It supports shared build configurations, allowing formatting rules to be distributed and loaded acr
Just is a collection of JavaScript utility libraries designed for data manipulation, functional programming, performance optimization, statistical analysis, and string processing. It provides a set of tools for deep cloning, filtering, and transforming complex objects and arrays. The project is structured as a series of zero-dependency modules, allowing utilities to be used independently to minimize bundle size. It implements functional programming patterns including currying, piping, and partial application, and provides execution control through memoization, debouncing, and throttling. The
terraform-docs is a Terraform module documentation generator and infrastructure as code documenter. It extracts inputs, outputs, and resources from Terraform configuration files to automatically create formatted technical guides and metadata exports. The tool functions as a multi-format metadata exporter, transforming module information into Markdown tables, AsciiDoc, JSON, YAML, XML, and TOML. It also serves as a CI/CD documentation automator, allowing for the integration of documentation updates into commit hooks and deployment pipelines. Capability areas include module documentation extra