2 Repos
Extracting data from raw pointers and serializing values into buffers for native consumption.
Distinct from Native Buffer Transfers: Focuses on the direct manipulation and extraction of data from raw pointers, beyond just zero-copy transfers.
Explore 2 awesome GitHub repositories matching software engineering & architecture · Pointer-Based Memory Access. Refine with filters or upvote what's useful.
node-ffi ist eine Foreign Function Interface-Bibliothek für Node.js, die den Aufruf von Funktionen aus nativen C-Dynamic-Libraries ermöglicht, ohne manuelle C++-Bindings schreiben zu müssen. Sie dient als System zum Laden von Shared Objects und DLLs in den Prozessspeicher, zur Übersetzung von JavaScript-Werten in binäre Repräsentationen und zur Ausführung externer Binärdateien zur Laufzeit. Das Projekt nutzt einen Wrapper um die libffi-Bibliothek, um Call-Frames zu konstruieren und native Funktionen mit dynamischen Argumenten auszuführen. Es zeichnet sich durch einen nativen Speicher-Manager zur Allokation von Raw-Pointern und ein Mapping-System aus, das komplexe C-Strukturen mit JavaScript-Objekten verbindet. Das Toolkit deckt ein breites Spektrum an nativer Interoperabilität ab, einschließlich automatischer Datentyp-Übersetzung und der Erstellung ausführbarer Speicher-Stubs, die es nativen Bibliotheken erlauben, JavaScript-Callbacks auszulösen. Um die Reaktionsfähigkeit des Main-Threads zu erhalten, unterstützt es ein asynchrones Ausführungsmodell, das native Funktionsaufrufe in einen separaten Thread-Pool auslagert.
Implements direct manipulation and extraction of data from raw pointers to handle C structs across the language boundary.
Janet ist eine Lisp-basierte dynamische Programmiersprache mit einer registerbasierten Bytecode-Virtual-Machine und einer einbettbaren Skript-Engine. Sie fungiert als Fiber-basierte Nebenläufigkeits-Runtime und enthält eine Parsing-Engine, die auf Parsing Expression Grammars basiert. Das Projekt zeichnet sich durch die Fähigkeit aus, über eine minimale Header-Schnittstelle in C- oder C++-Anwendungen integriert zu werden. Es nutzt ein Lisp-artiges Makrosystem für Code-Transformationen zur Kompilierzeit und verwendet prototypbasierte Tabellenvererbung für objektorientiertes Verhalten. Die Runtime deckt ein breites Spektrum an Funktionen ab, einschließlich asynchronem IO-Management durch eine nicht-blockierende Event-Loop, nativer Bibliotheksinteroperabilität über ein Foreign Function Interface und umfassender Textverarbeitung unter Verwendung von PEG-Grammatiken. Sie bietet zudem Tools für die Systemautomatisierung, wie eine Read-Eval-Print-Loop, ein Modulsystem für Symbolauflösung und Utilities für Netzwerk-Socket-Kommunikation und Dateisystemverwaltung. Die Umgebung enthält Diagnosetools für das Debugging der Bytecode-Ausführung und kann Quellcode in eigenständige binäre Executables bündeln.
Allows serializing values into buffers and extracting data directly from raw pointers for native consumption.