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

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
antirez avatar

antirez/sds

0
View on GitHub↗
5,486 stars·506 forks·C·BSD-2-Clause·11 views

Sds

sds is a C dynamic string library that provides a memory management wrapper for heap-allocated strings. It implements binary-safe storage by tracking string lengths explicitly, allowing the library to handle null characters within data.

The library distinguishes itself through a memory architecture that uses interchangeable function pointers for allocation and freeing, enabling the integration of custom memory managers. It utilizes header-stored length tracking to provide constant-time length retrieval and maintains null-terminated buffer padding to ensure compatibility with standard C string functions.

The toolkit covers a wide range of string manipulation capabilities, including concatenation, tokenization, joining, and range extraction. It also provides utilities for in-place buffer mutation, such as trimming and cropping, and includes optimized string formatting alternatives to standard print functions.

Features

  • Binary-Safe String Buffers - Provides a binary-safe string implementation that supports null bytes and special characters in C.
  • Dynamic String Management - Implements a comprehensive system for creating and manipulating heap-allocated, growable, binary-safe strings.
  • String Header Lengths - Stores string length in a prefix header to allow constant-time retrieval without scanning for null bytes.
  • C Memory Management - Handles dynamic memory for text and binary data in C to prevent manual buffer overflows.
  • Null-Terminated String Buffers - Maintains null terminators at the end of buffers to ensure compatibility with standard C string functions.
  • Constant-Time Length Retrieval - Provides constant-time length retrieval by storing the string length in a prefix header.
  • Dynamic String Libraries - Provides a comprehensive C library for managing heap-allocated, binary-safe strings with automatic length tracking.
  • C-Compatible String Conversions - Ensures all dynamic strings are null-terminated for seamless compatibility with standard C string functions.
  • String Concatenation Operations - Provides efficient operations to append binary data, null-terminated strings, or zero-padded bytes to dynamic buffers.
  • Buffer Modifiers - Provides utilities for modifying memory buffers directly to perform trimming and cropping without new allocations.
  • Custom Memory Allocators - Allows integration with specific heap management functions to control how string memory is allocated and freed.
  • Over-Allocation Strategies - Allocates more memory than immediately needed to reduce the number of reallocation calls during string growth.
  • C String Formatting Libraries - Offers optimized alternatives to standard library print functions for constructing formatted strings in C.
  • Custom Allocator Hooks - Provides interchangeable function pointers for allocation and freeing to enable custom memory managers.
  • Optimized String Formatting - Offers optimized alternatives to standard print functions to reduce execution overhead during string construction.
  • Safe String Copy Functions - Allows replacing string contents while reusing existing memory allocations to prevent unnecessary overflows and overhead.
  • String Formatting Utilities - Provides utilities to append formatted text using style specifiers and efficient integer-to-string conversion.
  • String Manipulation - Ships an optimized toolkit for concatenating, trimming, and tokenizing strings within C applications.
  • Range Extraction - Supports cropping strings to specified ranges using absolute or negative offsets from the end.
  • String Trimming - Removes specified characters from the start and end of strings without allocating additional memory.
  • String Joining - Implements utilities for combining an array of strings into a single sequence using a specified delimiter.
  • String Tokenization - Implements functions for splitting strings into substrings and trimming whitespace for data processing.
  • Build Systems - A simple, dynamic string library compatible with standard C strings.
  • Development Utilities - Simple dynamic string library for C.
  • General Utilities - Simple dynamic strings library for C.
  • String Manipulation - Dynamic string library compatible with standard C functions.
  • Windows Environments - Listed in the “Windows Environments” section of the Awesome C awesome list.

Star history

Star history chart for antirez/sdsStar history chart for antirez/sds

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does antirez/sds do?

sds is a C dynamic string library that provides a memory management wrapper for heap-allocated strings. It implements binary-safe storage by tracking string lengths explicitly, allowing the library to handle null characters within data.

What are the main features of antirez/sds?

The main features of antirez/sds are: Binary-Safe String Buffers, Dynamic String Management, String Header Lengths, C Memory Management, Null-Terminated String Buffers, Constant-Time Length Retrieval, Dynamic String Libraries, C-Compatible String Conversions.

What are some open-source alternatives to antirez/sds?

Open-source alternatives to antirez/sds include: angrave/systemprogramming — This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core… attractivechaos/klib — klib is a comprehensive C standard library extension and data structure toolkit. It provides a set of fundamental… redis/hiredis — Hiredis is a minimalistic C client library designed to send commands and receive responses from Redis servers using a… keybuk/libnih — NIH Utility Library. nothings/stb — This project is a collection of portable, header-only C functions designed for integration into software projects… kaisery/trpl-zh-cn — This project is a localized educational resource for learning the Rust programming language, providing a comprehensive…

Open-source alternatives to Sds

Similar open-source projects, ranked by how many features they share with Sds.
  • angrave/systemprogrammingangrave avatar

    angrave/SystemProgramming

    5,734View on GitHub↗

    This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation

    View on GitHub↗5,734
  • attractivechaos/klibattractivechaos avatar

    attractivechaos/klib

    4,679View on GitHub↗

    klib is a comprehensive C standard library extension and data structure toolkit. It provides a set of fundamental tools for memory management, data organization, and general-purpose utility functions for standalone C applications. The project features specialized capabilities for bioinformatics sequence analysis, including the parsing of FASTA, FASTQ, and Newick formats and the implementation of Smith-Waterman sequence alignment and Hidden Markov Models. It also includes a mathematical computation library for numerical routines and expression evaluation, as well as a lightweight HTTP and FTP

    C
    View on GitHub↗4,679
  • redis/hiredisredis avatar

    redis/hiredis

    6,655View on GitHub↗

    Hiredis is a minimalistic C client library designed to send commands and receive responses from Redis servers using a binary-safe protocol. It functions as a core toolkit providing a Redis protocol parser, a secure connector, and both synchronous and asynchronous driver interfaces. The library distinguishes itself through a decoupled protocol parser that converts raw byte streams into structured data objects independently of the network transport layer. It supports high-performance pipelining to batch multiple commands into a single network round-trip and provides a secure networking layer fo

    C
    View on GitHub↗6,655
  • keybuk/libnihkeybuk avatar

    keybuk/libnih

    92View on GitHub↗

    NIH Utility Library

    C
    View on GitHub↗92
  • See all 30 alternatives to Sds→