awesome-repositories.com
Blog
MCP
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoServidor MCPAcerca deCómo clasificamosPrensa
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

12 repositorios

Awesome GitHub RepositoriesCustom Comparison Logic

Mechanisms for using user-defined comparison functions to determine if a value has changed.

Distinct from Comparison Logic Providers: Distinct from static analysis rules or general logical operators; specifically about effect trigger logic.

Explore 12 awesome GitHub repositories matching software engineering & architecture · Custom Comparison Logic. Refine with filters or upvote what's useful.

Awesome Custom Comparison Logic GitHub Repositories

Encuentra los mejores repositorios con IA.Buscaremos los repositorios que mejor coincidan usando IA.
  • streamich/react-useAvatar de streamich

    streamich/react-use

    43,974Ver en GitHub↗

    react-use is a collection of reusable state and effect hooks for managing common logic in React applications. It serves as a comprehensive library for implementing state management patterns and wrapping various browser APIs into consistent hook interfaces. The project provides a specialized toolkit for DOM interaction and browser API integration, allowing components to track element dimensions, manage cookies, and monitor hardware sensors. It includes a suite of animation and timing utilities for physics-based numeric interpolation and frame-synced state updates. Beyond basic state managemen

    Provides a way to trigger side effects using custom or shallow comparison logic instead of reference equality.

    TypeScript
    Ver en GitHub↗43,974
  • github/scientistAvatar de github

    github/scientist

    7,719Ver en GitHub↗

    Scientist is a Ruby code parity testing library and production experimentation framework. It allows for the safe deployment of candidate code paths alongside a control implementation to verify that new logic produces the same outputs and exceptions as the original. The library identifies behavioral divergences between legacy and refactored code by running both versions in a live environment. It functions as a refactoring regression detector, measuring performance parity and detecting mismatches using real-world data without affecting the end user. The system covers broad capabilities for mon

    Implements user-defined comparison functions to determine if different return values or exceptions are functionally equivalent.

    Ruby
    Ver en GitHub↗7,719
  • phar-io/versionAvatar de phar-io

    phar-io/version

    7,477Ver en GitHub↗

    This project is a set of specialized tools for installing archive packages and programmatically parsing or validating software version constraints. It functions as a PHP version comparison library and a semantic versioning parser designed to handle the requirements of software dependency management. The system includes a PHP archive installer that downloads and deploys Phar packages from repositories, GitHub, or direct URLs. It uses a semantic version constraint validator to ensure that installed versions satisfy specific requirements defined by mathematical, caret, or tilde operators. Addit

    Implements custom logic to compare software version strings and determine release order and compatibility.

    PHP
    Ver en GitHub↗7,477
  • python-attrs/attrsAvatar de python-attrs

    python-attrs/attrs

    5,799Ver en GitHub↗

    attrs is a Python library that automatically generates initialization, representation, equality, hashing, and ordering methods from declarative class attribute definitions. At its core, it provides a class decorator metaprogramming framework that intercepts class creation to rewrite the class body, producing dunder methods without manual boilerplate. The library includes a comprehensive attribute validation toolkit with built-in validators for type checks, range constraints, regex matching, length limits, and logical composition of validation rules. The library distinguishes itself through it

    Excludes specific fields from equality or ordering checks, or applies custom key functions for comparison.

    Python
    Ver en GitHub↗5,799
  • npm/node-semverAvatar de npm

    npm/node-semver

    5,435Ver en GitHub↗

    node-semver es una herramienta para parsear, comparar y validar cadenas de versión de acuerdo con la especificación de Semantic Versioning. Funciona como un evaluador de rangos de versión, una biblioteca de comparación y una utilidad para incrementar identificadores de lanzamiento. El proyecto incluye una utilidad de coerción de versión que extrae secuencias numéricas de cadenas no conformes para aproximar una versión semántica. También proporciona lógica para calcular la siguiente cadena de lanzamiento incrementando segmentos mayores, menores o de parche. La biblioteca cubre una amplia gama de capacidades de gestión de versiones, incluyendo análisis de rangos para determinar si las versiones cumplen con restricciones específicas, la ordenación de listas de versiones basadas en precedencia y la validación tanto de versiones individuales como de rangos de versiones.

    Provides logic to determine if one software version is greater than, less than, or equal to another.

    JavaScript
    Ver en GitHub↗5,435
  • benjamine/jsondiffpatchAvatar de benjamine

    benjamine/jsondiffpatch

    5,324Ver en GitHub↗

    jsondiffpatch es una librería de diff y patch para JSON diseñada para calcular las diferencias entre dos objetos JSON y aplicar esos cambios para sincronizar estados. Funciona como una herramienta de sincronización para calcular deltas y aplicar parches para actualizar o revertir objetos complejos de JavaScript anidados. El proyecto proporciona una implementación compatible con el estándar RFC 6902 JSON Patch para actualizaciones atómicas y un renderizador de diferencias visuales que convierte los deltas de datos en vistas HTML legibles por humanos. Incluye una herramienta de diff de texto especializada para realizar análisis detallados a nivel de carácter en cadenas largas dentro de valores de datos JSON. La librería cubre una amplia gama de capacidades, incluyendo la generación recursiva de deltas y el cálculo de diferencias de arrays utilizando algoritmos de subsecuencia común más larga (LCS). Admite el diffing lógico de arrays para detectar movimientos de elementos mediante hashing personalizado y ofrece opciones de salida multiformato, como formato de consola codificado por colores y un componente de React dedicado para comparaciones visuales.

    Provides a mechanism to customize how differences are calculated by adding or replacing filters.

    TypeScript
    Ver en GitHub↗5,324
  • janet-lang/janetAvatar de janet-lang

    janet-lang/janet

    4,308Ver en GitHub↗

    Janet es un lenguaje de programación dinámico basado en Lisp que cuenta con una máquina virtual de bytecode basada en registros y un motor de scripting integrable. Funciona como un runtime de concurrencia basado en fibras e incluye un motor de análisis basado en Gramáticas de Expresión de Análisis (PEG). El proyecto se distingue por su capacidad de integrarse en aplicaciones de C o C++ a través de una interfaz de cabecera mínima. Utiliza un sistema de macros al estilo Lisp para la transformación de código en tiempo de compilación y emplea herencia de tablas basada en prototipos para el comportamiento orientado a objetos. El runtime cubre un amplio conjunto de capacidades, incluyendo la gestión de IO asíncrona a través de un bucle de eventos no bloqueante, interoperabilidad de bibliotecas nativas a través de una interfaz de funciones externas y procesamiento de texto integral utilizando gramáticas PEG. También proporciona herramientas para la automatización del sistema, como un bucle de lectura-evaluación-impresión (REPL), un sistema de módulos para la resolución de símbolos y utilidades para la comunicación de sockets de red y la gestión del sistema de archivos. El entorno incluye herramientas de diagnóstico para la depuración de la ejecución de bytecode y puede empaquetar el código fuente en ejecutables binarios independientes.

    Provides mechanisms to define custom ordering and comparison for abstract types.

    Ccfunctional-languageimperative-language
    Ver en GitHub↗4,308
  • artsabintsev/sirenAvatar de ArtSabintsev

    ArtSabintsev/Siren

    4,294Ver en GitHub↗

    Siren es una herramienta de gestión de actualizaciones de aplicaciones que identifica las versiones disponibles en la tienda de aplicaciones y solicita a los usuarios que actualicen sus instalaciones. Utiliza versiones semánticas para comparar la versión instalada con la versión de la tienda e integra con las API de la tienda para obtener los metadatos más recientes. La herramienta gestiona la experiencia de actualización a través de implementaciones de actualización forzada, sugerencias de actualización opcionales y despliegues graduales que posponen las notificaciones durante un número determinado de días. Incluye un verificador de compatibilidad del sistema operativo para evitar avisos de actualización si el dispositivo no cumple con los requisitos mínimos de la nueva versión. El sistema proporciona interfaces de alerta localizadas que mapean los mensajes de actualización al idioma del dispositivo o a una configuración regional específica. Dirige los comportamientos de la interfaz de usuario según si una actualización específica está marcada como obligatoria u opcional.

    Uses semantic versioning to compare the currently installed application version against the latest version available in the app store.

    Swift
    Ver en GitHub↗4,294
  • tc39/proposal-signalsAvatar de tc39

    tc39/proposal-signals

    4,138Ver en GitHub↗

    Este proyecto es una propuesta de ECMAScript para introducir una primitiva de estado reactivo nativa en el lenguaje JavaScript. Define un estándar para la reactividad de grano fino, proporcionando un mecanismo para rastrear dependencias de valores y propagar automáticamente las actualizaciones a través de un grafo de dependencias. La especificación se centra en la gestión de valores calculados y efectos secundarios basados en cambios granulares en el estado. Permite la sincronización de actualizaciones de estado a través de un grafo de dependencias y el seguimiento de las relaciones entre valores y sus observadores sin suscripciones manuales. La propuesta cubre el cálculo eficiente de valores mediante evaluación perezosa (lazy evaluation) y memorización, así como la capacidad de definir lógica de igualdad personalizada para determinar cuándo los cambios de estado deben activar actualizaciones. También incluye capacidades para observar cambios de estado y acceder a valores sin registrar dependencias.

    Supports user-defined comparison functions to determine if a value change should trigger updates.

    Ver en GitHub↗4,138
  • kentcdodds/match-sorterAvatar de kentcdodds

    kentcdodds/match-sorter

    4,099Ver en GitHub↗

    match-sorter es una utilidad de JavaScript para coincidencia de cadenas y filtrado de arrays, diseñada para clasificar y ordenar listas basándose en la relevancia de la cadena de búsqueda. Funciona como una librería de ordenación determinista de mejor coincidencia y un motor de búsqueda difusa para filtrar arrays de objetos. La herramienta prioriza los resultados utilizando heurísticas de coincidencia ponderadas que favorecen coincidencias exactas, acrónimos y la inclusión de cadenas. Emplea un sistema de clasificación determinista para asegurar un orden consistente y admite la normalización insensible a diacríticos para coincidir caracteres independientemente de los acentos. La librería cubre la especificación de criterios de coincidencia mediante la extracción de propiedades por key-path, la configuración del umbral de coincidencia para ajustar la rigurosidad de la búsqueda y la extracción de metadatos de clasificación. También proporciona lógica de ordenación personalizable mediante funciones de comparación externas para anular el desempate por defecto.

    Provides the ability to override default sorting results using external comparison functions.

    TypeScript
    Ver en GitHub↗4,099
  • afragen/git-updaterAvatar de afragen

    afragen/git-updater

    3,318Ver en GitHub↗

    WordPress Git Updater is a software update manager that automates the installation and updating of plugins and themes hosted on Git repositories. It functions as an automated release system and a secure client for private Git repository management, linking software components to providers like GitHub, GitLab, or enterprise Git instances for version tracking. The tool distinguishes itself through detailed branch management, allowing users to target specific branches or tagged releases for deployment. It supports secure access to private codebases via personal access tokens and provides a modul

    Allows developers to define custom version comparison rules and rollback download links.

    PHPgitlanguage-packupdater
    Ver en GitHub↗3,318
  • alexreardon/memoize-oneAvatar de alexreardon

    alexreardon/memoize-one

    2,971Ver en GitHub↗

    Memoize-one is a JavaScript function memoization library that stores function return values and serves them instantly on repeat calls with identical arguments to avoid redundant calculations. It retains only the single most recent argument set and return value, maintaining a constant and bounded memory footprint. The library features a shallow argument comparison engine and includes the runtime execution context alongside input arguments during comparison to ensure state and binding changes trigger fresh computations. Users can inject custom equality functions to override the default argumen

    Accept custom equality logic to determine whether input arguments match previous invocations for fine-grained cache control.

    TypeScriptjavascriptmemoizationmemoize
    Ver en GitHub↗2,971
  1. Home
  2. Software Engineering & Architecture
  3. Custom Comparison Logic

Explorar subetiquetas

  • Comparison Function InjectionAllows extending sorting logic via user-supplied comparison functions. **Distinct from Custom Comparison Logic:** Distinct from Custom Comparison Logic: focuses on the mechanism of injecting external functions for sorting rather than state-change detection logic.
  • Version Comparison LogicCustom functions used to determine if a software version is newer than the currently installed one. **Distinct from Custom Comparison Logic:** Specifically handles software version strings and rollback logic rather than general value changes.