# babelouest/ulfius

Web Framework to build REST APIs, Webservices or any HTTP endpoint in C language. Can stream large amount of data, integrate JSON data with Jansson, and create websocket services

Repository: https://github.com/babelouest/ulfius
Canonical: https://ross.abutalabs.com/products/ulfius
Homepage: https://babelouest.github.io/ulfius
Language: C
License: LGPL-2.1
License Family: copyleft
Topics: json, c, libmicrohttpd, libcurl, restful, rest-api, websockets, websocket-communication, web-development, webservice, websocket-server, websocket-client
Last push: 2026-07-14T11:23:47+00:00

## Health v2 (maintenance only)
Score: 64/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 92, release rhythm 8, longevity 100
- inputs: {"age_days": 3958, "days_push": 50, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1147, forks 188 (observed 2026-08-28T04:03:45.985231+00:00)

## What it is
Ulfius is an HTTP framework for building REST APIs, webservices, and HTTP endpoints in C, built on libmicrohttpd, Jansson, and libcurl. It supports streaming large data with low memory footprint, JSON handling, and both server- and client-side websockets.

## Use cases
- build a REST API in C
- create an HTTP webservice in an embedded system
- serve websocket connections from a C program
- make HTTP or SMTP client requests from C
- stream large files over HTTP with low memory usage
- handle JSON request and response bodies in a C web service

## When to choose
- you need a lightweight C web framework with a small memory footprint
- you are writing web services for embedded or resource-constrained systems
- you need websocket server and client support in C
- you want JSON-based REST endpoints without leaving C

## When to avoid
- you want a high-level framework with batteries included like routing middleware and ORMs
- you are building in a higher-level language where C is unnecessary
- you need async I/O or massive concurrency out of the box

## Facets
- artifact type: framework
- maturity: active
- function: web-framework, http-server, http-client, websocket, json, routing
- domain: web-development, backend, apis, embedded-systems
- platform: c, windows, cross-platform, embedded
- tags: rest-api, libmicrohttpd, libcurl, jansson, webservice, small-footprint, linux, macos

## Member repositories
- babelouest/ulfius (main) score 64

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:45.985231+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:34:01.311568+00:00, confidence not recorded.
  - readme: https://github.com/babelouest/ulfius (fetched 2026-08-28T04:03:45.985231+00:00, sha 49cc174149e6)
  - homepage: https://babelouest.github.io/ulfius (fetched 2026-08-29T12:39:10.607978+00:00, sha 21f7564c3de9)
- Data as of 2026-08-30T08:39:29.467469+00:00.
