embedded-data-parsing-libslisted
Install: claude install-skill easyzoom/aix-skills
# Embedded Data Parsing Libs
## Overview
Use this skill for small embedded data parsers where the main risks are memory allocation, input bounds, encoding assumptions, recursion, and callback handling. Cover `cJSON`, `jsmn`, and `inih` without copying their full APIs.
## When To Use
Use this skill when:
- The user wants to parse JSON or INI on an MCU.
- The task mentions `cJSON`, `jsmn`, `inih`, config files, telemetry JSON, command payloads, or settings parsing.
- The issue involves parse failure, memory leak, heap exhaustion, malformed input, callback mapping, or stack/recursion limits.
Do not use this skill for binary protocols or large streaming parsers outside these small libraries.
## First Questions
Ask for:
- Parser library: `cJSON`, `jsmn`, `inih`, or another small C parser.
- Input source and maximum input size.
- Runtime: bare metal, RTOS, Linux, bootloader, or shell command.
- Whether dynamic allocation is allowed.
- Expected schema and how malformed input should behave.
- Current error, sample input, and memory budget.
## Library Checks
### cJSON
- Decide whether heap allocation is acceptable.
- Provide custom malloc/free hooks if the project uses a custom allocator.
- Always delete parsed trees after use.
- Bound input size before parsing.
- Validate type before reading values.
### jsmn
- Allocate enough tokens for the expected JSON shape.
- Handle `JSMN_ERROR_NOMEM`, `JSMN_ERROR_INVAL`, and `JSMN_ERROR_PART`.
- Remember that tokens reference the o