Keith Packard, aktiv Debian-udvikler, leder af X.Org-projektet og skaber af mange X-udvidelser, herunder XRender, XComposite og XRandR, indsendt frigivelse af et nyt standard C-bibliotek PicoLibc 1.1, udviklet til brug på indlejrede enheder med begrænset permanent lagerplads og RAM. Under udviklingen blev en del af koden lånt fra biblioteket newlib fra Cygwin-projektet og AVR Libc, udviklet til Atmel AVR mikrocontrollere. PicoLibc kode distribueret af under BSD-licens. Bibliotekssamling er understøttet for ARM (32-bit), i386, RISC-V, x86_64 og PowerPC arkitekturer.
Keith Packard begyndte udviklingen efter at have været ude af stand til at finde en anstændig Libc-mulighed, der kunne bruges på indlejrede enheder med lidt RAM. Projektet har været under udvikling siden sidste år. I den første fase var projektet en variant af newlib, hvor funktionerne i stdio blev erstattet med en kompakt version fra avrlibc (stdio i newlib var ikke egnet til dets høje ressourceforbrug). Da Keiths nuværende arbejde involverer igangværende arbejde med RISC-V-arkitekturen og udvikling af værktøj til indlejrede enheder, gennemgik han for nylig tilstanden af libc-implementeringer og konkluderede, at kombinationen af newlib og avrlibc kunne være et godt generelt formål med en lille justering. løsning. Oprindeligt udviklede projektet sig under navnet "newlib-nano", men for at undgå forveksling med Newlib-biblioteket blev det omdøbt til PicoLibc.
I sin nuværende form har Picolibc allerede arbejdet på at fjerne al kode, der ikke leveres under en BSD-licens (denne kode blev ikke brugt, når man byggede til indlejrede enheder), hvilket væsentligt har forenklet situationen med licensen til projektet. Implementeringen af lokale streams er blevet flyttet fra 'struct _reent' til TLS-mekanismen (tråd-lokal opbevaring). Den kompakte version af stdio, lånt fra avrlibc-bibliotekskoden, er aktiveret som standard (ATmel-specifikke assembler-indlæg omskrives i C). Meson-værktøjssættet blev brugt til assembly, hvilket gjorde det muligt ikke at være bundet til newlib assembly scripts og forenkle overførslen af ændringer fra newlib. Tilføjet en forenklet version af initialiseringskoden (crt0), knyttet til den eksekverbare fil og udført før kontrol overføres til main()-funktionen.
I Picolibc version 1.1:
Tilføjet hjælpebibliotek for at understøtte teknologien "semihosting"tillader kode, der kører i et debugger- eller emulatormiljø, at bruge værtssystemets I/O-mekanismer;
For systemer, der understøtter åbne, lukke, læse og skrive systemkald, tilføjer tinystdio standardiserede POSIX stdio I/O-grænseflader, inklusive fopen- og fdopen-funktionerne, samt binding af stdin/stdout/stderr til POSIX-definerede filbeskrivelser;
Nylige ændringer fra newlib-kodebasen er blevet overført. Inklusiv tilføjede libm stubs til fenv.h, som kan bruges på systemer uden floating-point support;
Tilføjet et eksempel på opbygning af "Hello world"-applikationen med picolibc til ARM- og RISC-V-systemer;
Fjernede mapperne newlib, libm og mathfp, som indeholdt ubrugt eksperimentel kode.