13 dépôts
Objects that wrap other objects to intercept and redefine fundamental runtime operations.
Distinct from Method Interception Proxies: Candidates focus on AOP method interception or API proxies rather than the JS Proxy primitive.
Explore 13 awesome GitHub repositories matching programming languages & runtimes · Proxy Objects. Refine with filters or upvote what's useful.
This project is a comprehensive reference guide and technical documentation for the features, syntax updates, and APIs introduced in ECMAScript 6. It serves as a language specification and overview for modern JavaScript development. The guide covers a wide range of language enhancements, including the implementation of classes and prototype-based inheritance, the use of arrow functions for lexical scope binding, and the introduction of block-scoped variables. It details the module system for organizing independent code components via import and export statements. The documentation extends to
Documents the use of proxies to trap and customize runtime-level meta-operations.
Mockito is a Java mocking framework and JUnit testing library used to create simulated objects and stub method calls to isolate components during unit tests. It functions as a dynamic proxy generator and bytecode instrumentation tool, allowing for the creation of runtime substitutes that mimic the behavior of real classes. The framework distinguishes itself by providing the ability to mock final classes and methods, bypassing standard language restrictions through bytecode modification. This capability enables the testing of legacy code that lacks interfaces. The toolset covers behavioral mo
Generates runtime proxy objects that intercept and redefine method operations to mimic real classes.
q is a JavaScript promise library and asynchronous flow controller designed to manage non-blocking operations. It serves as a system for coordinating parallel tasks and sequencing asynchronous workflows through task chaining and error propagation. The library distinguishes itself with specialized debugging tools that capture long stack traces across asynchronous jumps and monitor unhandled rejections to prevent silent failures. It also functions as a remote object proxy, forwarding method calls to remote targets and routing responses back through promises. The project provides comprehensive
Allows asynchronous manipulation of proxied object properties and methods using promise-based getters and setters.
Comlink is a remote procedure call library that transforms message-based communication into asynchronous function calls between the main thread and web workers. It provides a proxy-based interface that allows multiple threads to interact with a single object instance without manual message handling. The project enables the execution of functions across separate browser windows, iframes, and web workers, making external calls behave like local asynchronous operations. It supports the transfer of non-cloneable data through custom serialization handlers and allows for the movement of ownership f
Manages memory by explicitly detaching proxies from remote objects to trigger garbage collection.
Android Tech Frontier is a project that periodically translates high-quality English Android development articles into Chinese for the developer community. Its core identity is as a translation pipeline that covers topics including Android internals, open-source libraries, software architecture, and testing methodologies. The project distinguishes itself by providing Chinese translations of technical content that spans Android view hierarchy analysis, HTTP request execution patterns, proxy creation techniques, and image loading configuration. It also covers UI layout solutions such as nesting
Wraps a real object inside a proxy that adds extra behavior before or after method calls.
Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded scripting engine that allows Go applications to execute JavaScript code and integrate a programmable scripting layer without relying on Cgo or external native dependencies. The project functions as a bridge between Go and JavaScript, enabling bidirectional data exchange and function invocation. It allows Go hosts to expose native structs, slices, and maps as JavaScript objects and arrays, while providing mechanisms to export script values and functions back into native Go type
Implements proxy objects that wrap target objects to intercept and redefine operations like property access.
Draper est un framework de couche de présentation et une bibliothèque de décorateurs pour Ruby on Rails qui implémente le pattern view-model. Il agit comme un système basé sur des proxys pour séparer la logique de présentation des modèles métier, permettant d'isoler les transformations de données spécifiques à la vue des données sous-jacentes. Le framework offre des capacités spécialisées pour gérer l'affichage des données, notamment la possibilité d'envelopper des objets uniques ou des collections entières. Il prend en charge la décoration récursive pour les modèles associés et l'injection du contexte de vue et de l'état de la requête dans les décorateurs pour permettre une présentation conditionnelle. Les fonctionnalités supplémentaires incluent la délégation de méthodes et de finders de classe au modèle enveloppé, l'intégration avec des helpers de vue pour le formatage des données, et l'utilisation d'identifiants globaux pour maintenir l'état de décoration lors de la sérialisation des tâches en arrière-plan. Un outil en ligne de commande est fourni pour générer les fichiers de décorateurs.
Uses a proxy-based system to intercept and extend the behavior of model objects for presentation.
ProxyManager est une bibliothèque de wrapper de proxy JavaScript et un utilitaire orienté objet pour intercepter et modifier le comportement des objets. Il fonctionne comme un intercepteur de comportement d'objet qui enveloppe les objets cibles pour surveiller, restreindre ou modifier les appels de méthode et l'accès aux propriétés au moment de l'exécution. La bibliothèque fournit des mécanismes pour l'initialisation paresseuse (lazy initialization) et le chargement paresseux, différant la création d'objets gourmands en ressources jusqu'à ce qu'une propriété ou une méthode soit accédée pour la première fois afin de réduire la surcharge mémoire. Elle utilise une structure orientée objet pour gérer ces wrappers de proxy et leurs objets cibles associés. L'outil couvre des capacités pour le contrôle d'accès dynamique et l'optimisation de la gestion des ressources. Il permet l'encapsulation d'objets bruts pour implémenter une logique d'exécution personnalisée et un contrôle d'accès centralisé.
Wraps target objects in proxies to intercept and redefine fundamental runtime operations.
Radash est une bibliothèque d'utilitaires fonctionnels TypeScript conçue pour la transformation de données, la validation et la gestion de workflow. Elle fournit une collection de fonctions d'aide typées pour manipuler les tableaux, les objets et les chaînes de caractères. Le projet propose une boîte à outils de workflow asynchrone pour gérer les promesses, les tentatives et les limites de concurrence, aux côtés d'une suite de validateurs booléens pour vérifier les types primitifs, les objets et les promesses. Il implémente également des patterns de programmation fonctionnelle tels que la composition de fonctions, l'application partielle et les patterns de réponse error-first. La bibliothèque couvre une large surface de capacités, incluant la gestion d'état d'objet avec clonage profond et fusion, des manipulations de tableaux complexes et le formatage de chaînes. Elle fournit en outre des outils pour l'optimisation de l'exécution, tels que le rate limiting et la mise en cache des résultats.
Simplifies the creation of proxy objects to intercept and redefine property access and function calls.
Workerize est un chargeur de module web worker et un déchargeur de thread principal. Il fonctionne comme un wrapper de proxy asynchrone qui permet aux modules JavaScript de s'exécuter dans des workers d'arrière-plan, empêchant les gels de l'interface utilisateur du navigateur en déléguant les tâches coûteuses en calcul à des threads séparés. Le projet utilise une interface basée sur un proxy pour appeler des fonctions à l'intérieur d'un worker d'arrière-plan comme s'il s'agissait d'appels asynchrones locaux. Ce mécanisme permet l'exécution de modules dans des workers parallèles pour maintenir la réactivité du thread principal. Le système couvre l'exécution de modules asynchrones et l'intégration de web workers, en se concentrant sur l'optimisation du thread principal en déplaçant la logique lourde hors du thread d'exécution primaire.
Provides a proxy-based interface that allows worker functions to be called as if they were local asynchronous calls.
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
Provides a reference for using Proxy objects to intercept and redefine object operations.
Ce projet est un dépôt pédagogique et une ressource d'apprentissage fournissant une collection complète de notes d'étude, de guides de programmation et d'exemples de code exécutables. Il sert de guide pour le développement Java SE et web Java, présentant une bibliothèque d'exemples de code qui démontrent des algorithmes courants et des implémentations techniques. Le dépôt se concentre sur l'analyse du cœur du langage et du runtime, avec des tutoriels détaillés sur le multithreading et la concurrence. Il fournit des implémentations pratiques de l'architecture logicielle et des modèles de conception (design patterns), tels que les modèles singleton et stratégie, ainsi que des explorations de la Java Virtual Machine et du bytecode. Le projet couvre un large éventail de capacités, notamment les fondamentaux du langage comme les génériques et les annotations, les bases du développement web impliquant la gestion des requêtes HTTP et des sessions, et les primitives de concurrence pour le cycle de vie des threads et la synchronisation des ressources. Il inclut également des utilitaires pour la sécurité, le traitement des données et la génération de pages dynamiques.
Provides proxy objects that wrap target objects to intercept and redefine runtime operations for preprocessing or filtering.
vm2 est un sandbox JavaScript Node.js et un virtualiseur de runtime conçu pour exécuter du code non fiable. Il fonctionne comme un évaluateur de code sécurisé et un isolateur de modules qui protège le processus hôte en créant un environnement d'exécution isolé avec un accès restreint au runtime Node.js. Le système se distingue par un framework de sécurité qui utilise le proxying d'objets et le gel profond (deep freezing) pour empêcher les scripts sandboxés de modifier le contexte global de l'hôte ou les objets partagés. Il implémente un contrôle d'accès strict aux modules en utilisant des listes d'autorisation et des restrictions de chemin pour régir quelles dépendances intégrées ou externes peuvent être chargées. Le projet couvre de larges domaines de capacités incluant la gestion des ressources, où il plafonne l'allocation de mémoire pour les buffers et impose des délais d'exécution pour empêcher les attaques par déni de service. Il fournit également des restrictions d'accès au système de fichiers et des outils pour l'interopérabilité inter-sandbox et la redirection de la sortie console. Une interface de ligne de commande est disponible pour exécuter des fichiers JavaScript directement dans l'environnement sandbox isolé.
Wraps host objects in proxies to intercept property access and prevent unauthorized mutations or leaks.