7 repositorios
Tools that modify compiled bytecode at runtime to inject additional functionality without altering source code.
Distinct from Scalable Thread Pools: Candidates [f0_mt1] through [f0_mt5] focus on thread pool monitoring, scaling, or administration, rather than the bytecode-level agent instrumentation technique used for context transmission.
Explore 7 awesome GitHub repositories matching programming languages & runtimes · Bytecode Instrumentation Agents. Refine with filters or upvote what's useful.
This project is a Java thread-local extension and context transmitter designed to preserve execution context across asynchronous boundaries. It provides the mechanisms necessary to pass thread-local variables from parent threads to child threads, ensuring data persists when using thread pool executors. The library enables automatic context transmission through a Java agent that uses bytecode instrumentation to modify thread pool implementations without requiring source code changes. It also supports transparent instrumentation via executor service wrapping and task decoration for Runnable and
Provides a Java agent that instruments thread pool implementations to enable automatic context transmission.
btrace es una herramienta de rastreo dinámico y perfilador de rendimiento para JVM, utilizada para inyectar scripts de instrumentación seguros en una Máquina Virtual Java en ejecución sin requerir el reinicio del proceso. Funciona como un framework de agente Java y un servidor de Model Context Protocol, exponiendo operaciones de diagnóstico de JVM y herramientas de rastreo a modelos de lenguaje grandes y asistentes de IA. El proyecto se distingue por permitir la inyección de código en tiempo real y la instrumentación a nivel de bytecode mediante un protocolo binario seguro. Garantiza la estabilidad en producción a través de un motor de análisis de seguridad estática que bloquea patrones de código inestables, como bucles y asignaciones, durante la fase de compilación del script. El sistema cubre una amplia gama de capacidades de observabilidad, incluyendo el rastreo de ejecución de métodos, el seguimiento de asignación de objetos y el monitoreo de acceso a campos. Proporciona perfiles de rendimiento mediante métricas de latencia y muestreo de datos de ejecución, y puede emitir eventos personalizados de Java Flight Recorder para análisis nativo. El agente admite estrategias de despliegue flexibles, incluyendo el arranque al inicio o la conexión a procesos en vivo en entornos contenedorizados utilizando paquetes fat JAR.
Modifies compiled bytecode at runtime to inject monitoring logic at method entry, return, and exception points.
MockK is a Kotlin test double framework that creates mocks, spies, and relaxed mocks for unit testing, with support for final classes, static methods, and coroutines. It functions as a bytecode instrumentation library that modifies compiled class files at load time to intercept constructors, final methods, and static functions without source changes, and also provides dedicated libraries for constructor mocking and coroutine mocking. The framework is designed specifically for Kotlin, handling Kotlin-specific constructs like extension functions, singletons, and suspend functions. MockK disting
Modifies compiled class files at load time to intercept constructors, final methods, and static functions without source changes.
JaCoCo es una herramienta de cobertura de código Java y un instrumentador de bytecode que mide qué partes del código fuente se ejecutan durante las pruebas. Funciona como un agente de tiempo de ejecución para monitorear la ejecución de la aplicación sobre la marcha o como una biblioteca para la instrumentación de bytecode fuera de línea, lo que le permite capturar datos de ejecución en entornos donde los agentes de tiempo de ejecución están restringidos. El proyecto se distingue por proporcionar rutas de instrumentación dinámicas y estáticas para rastrear la ejecución. Incluye un agente de tiempo de ejecución para el monitoreo sobre la marcha y la capacidad de modificar archivos de clase compilados antes de la ejecución. Además, permite la recuperación de métricas de ejecución de procesos en ejecución a través de conexiones de red remotas sin interrumpir la aplicación activa. El sistema calcula métricas de cobertura cuantitativas a través de instrucciones, ramas, líneas, métodos y clases, junto con mediciones de complejidad ciclomática. Proporciona capacidades para fusionar datos de múltiples ejecuciones de prueba, hacer cumplir umbrales de cobertura dentro de puertas de calidad CI/CD y generar informes que mapean el bytecode ejecutado de vuelta al código fuente. La integración visual está disponible para mostrar estos resultados directamente dentro de los editores de código. La herramienta se integra con sistemas de automatización de compilación e interfaces de línea de comandos para automatizar la recolección de datos y la generación de informes.
Implements bytecode instrumentation agents to inject tracking probes into compiled Java classes at runtime.
This project is a diagnostic utility for monitoring and analyzing memory consumption in Python applications. It provides tools for tracking resource usage at the process level and performing detailed, line-by-line analysis to identify memory leaks and performance bottlenecks. The tool distinguishes itself through its ability to aggregate memory metrics across entire process trees, capturing the total resource impact of both parent and child processes. It supports time-series visualization of memory usage over the duration of a script, allowing for the identification of long-term consumption p
Modifies Python bytecode at runtime to inject monitoring hooks for granular line-level memory tracking.
Powermock es un framework de mocking para Java y herramienta de pruebas unitarias que utiliza manipulación de bytecode para simular métodos estáticos, clases finales y constructores privados. Incluye una herramienta de instrumentación de agente Java y una utilidad de pruebas basada en reflexión para eludir la encapsulación y modificar el comportamiento de las clases en tiempo de ejecución. El proyecto se distingue por proporcionar la capacidad de interceptar la instanciación de objetos mediante la palabra clave new y simular el comportamiento de clases del sistema Java central y métodos nativos. Puede anular modificadores finales en clases y métodos y eludir restricciones de firma para clases contenidas dentro de archivos firmados. El conjunto de herramientas cubre amplias áreas de capacidad, incluyendo el mocking de miembros privados, la verificación de construcción de objetos y la supresión de inicializadores estáticos y constructores. También proporciona utilidades de reflexión para la gestión de estado privado y se integra con JUnit a través de reglas y runners especializados. La integración es compatible con arquitecturas modulares como OSGi y varios frameworks de ejecución de pruebas externos.
Includes a runtime agent that injects bytecode transformations to modify system classes and bypass runtime environment locks.
Este proyecto es un plugin de Gradle diseñado para facilitar la programación orientada a aspectos dentro de aplicaciones Android. Funciona como una herramienta de tiempo de compilación que intercepta llamadas a métodos para inyectar lógica transversal, permitiendo a los desarrolladores centralizar preocupaciones como el registro (logging), la seguridad o el monitoreo de rendimiento sin modificar archivos fuente individuales. El plugin se distingue por su capacidad de realizar weaving de dependencias binarias, lo que aplica instrumentación tanto en el código fuente local como en formatos de bibliotecas externas como JARs y AARs. Al utilizar la API de Transformación de Gradle, se integra directamente en la tubería de compilación para modificar el bytecode, asegurando que la lógica inyectada se aplique consistentemente en todo el grafo de dependencias del proyecto. Más allá de sus capacidades principales de instrumentación, la herramienta proporciona características de optimización de compilación que gestionan conflictos de dependencias y mejoran el rendimiento de la compilación. Soporta procesamiento incremental para volver a procesar selectivamente segmentos de código modificados e incluye mecanismos de filtrado para excluir clases o bibliotecas específicas del proceso de compilación.
Modifies compiled class files during the build process to inject custom logic into existing methods.