20 Repos
Low-level allocation and cleanup of memory buffers within C-based libraries.
Distinct from C++ Memory Suites: None of the candidates cover general C memory management for numerical buffers; most are too specific to GUI or WebAssembly.
Explore 20 awesome GitHub repositories matching operating systems & systems programming · C Memory Management. Refine with filters or upvote what's useful.
This project is a Python wrapper for the TA-Lib library, providing a technical analysis library for computing moving averages, momentum, and volatility metrics for financial time series analysis. It serves as a financial indicator calculator that processes price and volume arrays to generate technical signals and pattern recognition. The library includes an incremental data processor capable of computing the most recent technical indicator values as new streaming market data arrives. This allows for real-time price monitoring and the processing of streaming data without recalculating entire d
Relies on the underlying C library to handle allocation and cleanup of buffers during complex computations.
Phalcon is a full-stack PHP web framework implemented as a compiled C extension that loads directly into the PHP interpreter. Rather than executing PHP scripts at runtime, the framework runs as a native C module, bundling routing, ORM, templating, and caching into immutable structures compiled at build time. This architecture hooks directly into PHP's internal Zend Engine API to bypass userland function call overhead, processes HTTP requests through a C-level event pipeline, and passes data between layers using pointer references instead of duplicating memory buffers. The framework manages ob
Manages object lifecycles and data structures directly in C to minimize allocation overhead and garbage collection pauses.
pwndbg is a GDB plugin and binary analysis framework designed for reverse engineering, exploit development, and low-level program analysis. It extends the core functionality of the debugger to provide advanced memory inspection and automation tools. The project distinguishes itself with specialized capabilities for heap analysis across glibc, jemalloc, and musl, as well as a comprehensive kernel debugging toolkit for inspecting Linux kernel tasks and slab allocators. It includes an integrated ROP gadget searcher for constructing exploit chains and an LLM-powered debugging assistant that provi
Loads custom C structure definitions for type-aware memory inspection.
Torch7 is a scientific computing environment and tensor computation library used for deep learning research and numerical analysis. It functions as a Lua-based framework for training neural networks and learning agents, providing a toolkit for implementing architectures and training through reinforcement learning algorithms. The project is distinguished by its tight integration with C, utilizing a binding layer to map high-level scripting to low-level C structures for direct memory access. It supports hardware-accelerated computation by offloading linear algebra and convolution operations to
Allocates high-performance contiguous memory buffers in C for multi-dimensional numerical arrays.
JerryScript is a lightweight, ECMAScript-compliant JavaScript engine and bytecode compiler designed for resource-constrained devices. It serves as an embedded interpreter and IoT scripting runtime, enabling the execution of JavaScript code within native C applications on hardware with limited memory. The project differentiates itself through a focus on low-memory runtime management, utilizing bytecode precompilation and pre-compiled state snapshots to reduce startup time and memory overhead. It features a C-binding native bridge for bidirectional communication between native code and scripts,
Implements memory buffer management allowing JavaScript ArrayBuffers to use external backing stores or custom C allocators.
GloVe is a distributed word representation system and a C implementation for training and using Global Vectors for word embeddings. It provides a word embedding training tool to learn numerical representations of words based on global co-occurrence statistics from a text corpus. The project includes a pre-trained word vector library learned from large web datasets, allowing for the import of these representations to perform semantic analysis without local training. It enables word vector generation to identify semantic relationships, analogies, and nearest neighbors. The system covers the fu
Uses low-level C memory allocation to efficiently handle high-dimensional matrices and large vocabularies.
BlocksKit is a low-level utility library for Apple platform development, specifically designed for managing the execution flow and memory of blocks within macOS and iOS applications. It provides a collection of helper functions to simplify the use of blocks in Objective-C and C, reducing boilerplate code and addressing inherent technical limitations. The library focuses on bridging Objective-C blocks with legacy C-based APIs by providing compatible wrapper structures and function-pointer emulation. It enables the passing of blocks through system interfaces that require strict C-style callback
Provides low-level memory management for blocks, specifically handling the copying and releasing of memory between stack and heap.
http-parser ist eine C-Bibliothek für Zero-Copy-HTTP-Parsing, URL-Dekonstruktion sowie die Verwaltung von Protokoll-Upgrades und Chunked-Encoding. Sie bietet Utilities zum Extrahieren von Headern, Methoden und Statuscodes aus HTTP-Anfragen und -Antworten. Das Projekt enthält einen Zero-Copy-URL-Parser zur Zerlegung von Strings in einzelne Komponenten sowie einen Mechanismus zur Erkennung von Protokoll-Switch-Anfragen, um den genauen Byte-Offset zu identifizieren, an dem Nicht-HTTP-Daten beginnen. Zudem verfügt es über einen Decoder für die Verarbeitung von Chunked-Transfer-Encoded-Datenströmen.
Implements low-level memory allocation and cleanup for buffers within a C-based library to minimize overhead.
sds ist eine C-Bibliothek für dynamische Strings, die einen Wrapper für die Speicherverwaltung von Strings auf dem Heap bereitstellt. Sie implementiert binärsichere Speicherung durch explizite Längenverfolgung, wodurch die Bibliothek Null-Bytes innerhalb der Daten verarbeiten kann. Die Bibliothek zeichnet sich durch eine Speicherarchitektur aus, die austauschbare Funktionszeiger für die Speicherallokation und -freigabe verwendet, was die Integration benutzerdefinierter Speicherverwalter ermöglicht. Sie nutzt eine im Header gespeicherte Längenverfolgung für den Zugriff auf die String-Länge in konstanter Zeit und hält Null-terminiertes Padding im Puffer vor, um die Kompatibilität mit Standard-C-String-Funktionen zu gewährleisten. Das Toolkit deckt eine breite Palette an String-Manipulationsfunktionen ab, darunter Konkatenation, Tokenisierung, Zusammenfügen und Bereichsextraktion. Zudem bietet es Hilfsprogramme für die In-Place-Mutation von Puffern, wie z. B. Trimmen und Zuschneiden, sowie optimierte Alternativen zur String-Formatierung für Standard-Print-Funktionen.
Handles dynamic memory for text and binary data in C to prevent manual buffer overflows.
Unity ist ein leichtgewichtiges Unit-Testing-Framework für C, das die erforderliche Assertion-Bibliothek, den Test-Runner und Berichtsmechanismen zur Überprüfung der Code-Korrektheit bereitstellt. Es fungiert als Kern-Testinfrastruktur zur Organisation und Ausführung von Unit-Tests in C-Umgebungen. Das Framework ist für die Validierung von System-Level- und Embedded-Software konzipiert, mit spezifischen Funktionen zur Überprüfung von Firmware und Hardware-Treibern. Es konzentriert sich auf Speicherintegrität und Pointer-Validität, was die Validierung von Pointer-Zuständen und die Inspektion roher Speicherblöcke ermöglicht. Das Toolset deckt ein breites Spektrum an Vergleichstypen ab, einschließlich numerischer Verifizierung für Integer, Bitmuster und Fließkommawerte. Es bietet zudem Dienstprogramme zur Validierung nullterminierter Strings, Array-Inhalte und boolescher Logik, während es benutzerdefinierte Fehlermeldungen unterstützt, um Kontext während des Debuggings bereitzustellen.
Checks for null pointers and compares raw memory segments to ensure data integrity.
tbox is a multi-platform C standard library and toolkit designed for portable software development. It provides a core foundation for low-level system programming through a collection of system primitives, data structures, and memory management tools. The project includes a coroutine framework for cooperative multitasking and asynchronous logic, a data structure library featuring generic containers with a consistent iterator interface, and a memory management toolkit for pool allocation and debugging of heap overflows and leaks. It also provides a network and serialization toolset for handlin
Provides low-level memory allocation and cleanup tools specifically for C-based portable libraries.
MacVim ist eine native Cocoa-Anwendung, die den modalen Texteditor Vim als grafische Benutzeroberfläche unter macOS implementiert. Sie integriert die Editor-Engine direkt in ein natives Fenster und eine Event-Loop, wodurch sie ohne Terminal-Emulator betrieben werden kann. Das Projekt fungiert sowohl als Programmier-Texteditor als auch als hexadezimaler Binär-Editor. Es bietet Tools zur Modifikation roher Binärdaten über ein visuelles hexadezimales Raster und zum Anwenden von Patches auf Binärdateien. Der Editor bietet modale Eingabeverarbeitung, musterbasierte Syntaxhervorhebung und rechteckige Blockauswahl. Zusätzliche Funktionen umfassen mehrstufige Undo-Historie, Dateipfad-Vervollständigung, Rechtschreibprüfung und die Möglichkeit, zu bestimmten Codezeilen über Compiler-Fehlermeldungen zu navigieren. Er unterstützt zudem Layout-Management durch mehrere Fenster und Code-Folding sowie das Rendering für Farsi-Schrift.
Manages text buffer memory allocation using low-level C pointers for optimal performance.
Libpostal ist eine C-Bibliothek für das Parsen und Normalisieren internationaler Adressen. Sie nutzt statistisches NLP und einen Sprachklassifikator, um unstrukturierte globale Adress-Strings in strukturierte Komponenten zu zerlegen und Straßenadressen durch das Auflösen von Abkürzungen und regionalen Namensvariationen über mehrere Sprachen hinweg zu standardisieren. Das Projekt bietet Tools für die Texttransliteration, um verschiedene Schriftsysteme in standardisierte Latin-ASCII- oder NFD-Formen zu konvertieren. Es enthält zudem Funktionen zur Adress-Deduplizierung, wobei symmetrisches Fuzzy-Matching verwendet wird, um zu identifizieren, ob verschiedene Adressdatensätze denselben physischen Ort referenzieren. Die Bibliothek deckt breitere Textverarbeitungsanforderungen ab, wie UTF-8-Normalisierung sowie die Konvertierung von ausgeschriebenen Zahlen und römischen Ziffern in numerische Darstellungen. Sie ermöglicht Erweiterungen der Adresserkennung durch externe Konfigurationsdateien, um neue Sprachen und Synonyme hinzuzufügen.
Implements high-performance address processing using manual memory allocation and buffer cleanup in C.
uthash ist eine makrobasierte Datenstruktur-Bibliothek für C, die Header-only-Implementierungen von Hash-Tabellen, verketteten Listen, Stacks und dynamischen Arrays bereitstellt. Sie ermöglicht schlüsselbasierte Lookups und organisierte Datenspeicherung, ohne dass externe Bibliotheken gelinkt werden müssen. Die Bibliothek nutzt intrusives Linking, um Metadaten über Makros direkt in benutzerdefinierte Strukturen einzubetten. Dieser Ansatz ermöglicht die In-Place-Erweiterung von Strukturen, sodass Hash- und Link-Felder zu bestehenden Structs hinzugefügt werden können, ohne dass separate Speicherallokationen für Container-Knoten erforderlich sind. Das Projekt umfasst zudem spezialisiertes Speicher- und Datenstrommanagement, einschließlich kreisförmiger Puffer mit fester Größe für kontinuierliche Datenströme sowie String-Puffer mit automatischer Speicherverwaltung. Diese Hilfsmittel erleichtern die Datenverarbeitung in ressourcenbeschränkten Umgebungen und eingebetteten Systemen.
Handles low-level allocation and cleanup of dynamic memory buffers within C.
klib ist eine umfassende Erweiterung der C-Standardbibliothek und ein Toolkit für Datenstrukturen. Es bietet eine Reihe grundlegender Tools für Speicherverwaltung, Datenorganisation und allgemeine Dienstprogrammfunktionen für eigenständige C-Anwendungen. Das Projekt verfügt über spezialisierte Funktionen für die bioinformatische Sequenzanalyse, einschließlich des Parsens von FASTA-, FASTQ- und Newick-Formaten sowie der Implementierung von Smith-Waterman-Sequenzalignment und Hidden-Markov-Modellen. Es enthält zudem eine Bibliothek für mathematische Berechnungen für numerische Routinen und Ausdrucksauswertung sowie einen leichtgewichtigen HTTP- und FTP-Client für den wahlfreien Zugriff auf entfernte Daten. Das Toolkit deckt eine breite Oberfläche von Hochleistungs-Computing-Primitiven ab, einschließlich Multithreading-Modellen, Suffix-Array-Konstruktion in linearer Zeit und optimierten Sortieralgorithmen. Es implementiert eine Vielzahl effizienter Datenindizierungsstrukturen wie Hash-Tabellen mit offener Adressierung, B-Bäume und intrusive AVL-Bäume, unterstützt durch speicherpoolbasierte Sequenzverwaltung. Zusätzliche Dienstprogramme umfassen JSON-Datenparsing und die Interpretation von Kommandozeilenargumenten.
Handles low-level allocation and cleanup of memory buffers using custom memory pools and dynamic arrays.
libextobjc ist eine Objective-C-Spracherweiterungsbibliothek und ein Laufzeit-Toolset, das funktionale Programmiermuster und fortgeschrittene Dynamik bietet. Es fungiert als Sammlung von Dienstprogrammen für Method-Injection, Klassenreflexion und statische Analyse, um Laufzeitabstürze zu verhindern. Die Bibliothek ermöglicht die Generierung algebraischer Datentypen zur Kompilierzeit und bietet einen Mechanismus zur Synthese von Backing-Instanzvariablen für Eigenschaften, die innerhalb von Kategorien definiert sind. Sie implementiert zudem Protokoll-Standardverhalten und bietet Tools zur Validierung von Key-Paths und Selektoren während des Kompilierungsprozesses. Das Projekt deckt breitere Funktionsbereiche ab, einschließlich asynchroner Flusssteuerung durch blockbasierte Coroutines und Speicherverwaltungsdienstprogramme, die die Ressourcenbereinigung automatisieren und Referenzzyklen innerhalb von Block-Scopes abschwächen. Es enthält zudem Tools für Laufzeit-Method-Injection und Objektreflexion zur Analyse von Klassenhierarchien und Eigenschaften.
Manages the memory lifecycle of blocks to prevent retain cycles and leaks.
Dieses Projekt bietet eine Linux-Kernel-Entwicklungsumgebung und eine System-Emulations-Suite für das Erstellen und Debuggen von Kernel-Modulen und Bare-Metal-Assembly über mehrere Hardware-Architekturen hinweg. Es fungiert als umfassende Sandbox und Framework für Low-Level-Systementwicklung und nutzt QEMU, um Hardware-Umgebungen ohne physische Geräte zu simulieren. Die Umgebung integriert Cross-Compilation-Toolchains unter Verwendung von Buildroot und crosstool-NG, um x86_64-, ARMv7- und ARMv8-Plattformen von einem einzigen Host aus anzusteuern. Sie bietet ein spezialisiertes Kernel-Debugging-Framework, das GDB und KGDB für die schrittweise Ausführung und Zustandsinspektion von Kernel- und Userland-Prozessen nutzt. Zu den breiten Funktionen gehören automatisierte Regressionstests zur Isolierung von Boot- und Funktionsfehlern durch Versionskontroll-Bisection, Hardware-Abstraktion für das Management von CPU-Energiezuständen und Systemregistern sowie Low-Level-Testprimitive für Speicherzustandsintegrität und Assembly-Analyse. Das System enthält zudem Utilities für Performance-Benchmarking von Befehlen, Output-Logging und containerisiertes Workspace-Bootstrapping.
Provides utilities to verify data integrity and system state using raw memory comparisons during execution.
Diese Bibliothek bietet eine Sammlung spezialisierter Datenstrukturen für die Swift-Sprache, die die Standardbibliothek um fortgeschrittene Containertypen erweitern. Sie enthält Implementierungen für Double-Ended Queues unter Verwendung von Ring-Buffern, Priority Queues basierend auf Min-Max-Heaps sowie speichereffiziente Bit-Set- und Bit-Array-Speicherung für boolesche Werte. Das Projekt bietet geordnete Sammlungen, die Elemente mittels B-Tree-Implementierungen in sortierter Reihenfolge halten, sowie persistente Sets und Dictionaries, die komprimierte Präfix-Bäume verwenden, um Daten zwischen mutierten Kopien zu teilen. Es bietet zudem spezialisierte Container, die die Einfügereihenfolge bewahren. Die Bibliothek deckt eine Reihe von Funktionen ab, einschließlich Low-Level-Speicherverwaltung für C-Buffer und nicht-kopierbare Werte, Festkapazitätsspeicherung und die Verwendung von Robin-Hood-Hashing zur Optimierung der Speicherauslastung und Suchgeschwindigkeiten.
Provides low-level memory management for C buffers to enable safe data exchange with system components.
embedded-notes ist eine Sammlung technischer Studienleitfäden und Entwicklungsnotizen mit Fokus auf Embedded Linux, Linux-Kernel-Internals und C-Programmierung. Sie dient als Referenz für die Entwicklung eingebetteter Systeme und als Vorbereitungsressource für technische Vorstellungsgespräche in diesem Bereich. Das Projekt bietet detaillierte Dokumentation zum Schreiben von Gerätetreibern, zur Verwaltung von virtuellem Speicher und zum Verständnis der Kernel-Internals. Es enthält zudem Leitfäden zu IoT-Netzwerkprotokollen wie MQTT und TCP/IP und skizziert die architektonischen Details von Chip-Architekturen und Hardware-Peripheriegeräten. Das Material deckt ein breites Spektrum der Systemprogrammierung ab, einschließlich manueller Speicherverwaltung, Prozesslebenszyklus-Management und der Implementierung von Konzepten für Echtzeitbetriebssysteme. Es enthält zudem Referenzen für Low-Level-Tools wie Cross-Kompilierung für ARM, Binäranalyse und Shell-Scripting für Build-Automatisierung.
Provides detailed notes on low-level memory allocation and cleanup of buffers within the C language.
RedisJSON ist ein System zum Speichern und Verwalten von JSON-Daten innerhalb von Redis unter Verwendung eines nativen Binärformats. Es ermöglicht das Speichern von JSON-Dokumenten und das Abrufen verschachtelter Daten unter Verwendung einer gezielten Pfadsyntax. Das Projekt bietet die Möglichkeit, atomare Updates auf einzelnen Elementen innerhalb eines verschachtelten JSON-Objekts durchzuführen, was Modifikationen ermöglicht, ohne das gesamte Dokument abzurufen und neu zu schreiben. Es unterstützt zudem NoSQL-Datenindizierung durch das Erstellen sekundärer Indizes auf bestimmten Feldern, um Such- und Filteroperationen über Datensätze hinweg zu beschleunigen. Die breiteren Funktionen decken den hierarchischen Datenabruf und das Mapping von JSON-Feldern auf externe Indexstrukturen für schnelles Suchen ab.
Uses manual C memory management to achieve low overhead and high performance.