#axum #http #esp

goohttp

An embedded, axum-compatible HTTP server and macros

6 releases

0.4.2 Jul 4, 2023
0.4.1 Jun 21, 2023
0.3.1 Jun 18, 2023
0.2.0 Jun 11, 2023
0.1.1 Jun 11, 2023

#1353 in HTTP server

Download history 13/week @ 2024-09-21

54 downloads per month

MIT license

24KB
327 lines

goohttp

This library provides macros for easy router definition and, if enabled, an embedded compatible synchronous HttpServer, that uses the axum router for route management. This crate is NOT no_std compatible.

Crates.io Crates.io

Features

By default this library only provides two macros for more convenient router creation.

  • esp -> This feature enables the embedded compatible HttpServer.

Additional info for use in embedded development

stack overflow in pthread

Because this HttpServer uses async functions and the spawn function from tokio, you may get this error:

***ERROR*** A stack overflow in task pthread has been detected.

Fortunately, all you have to do is adjust the following value in your sdkconfig.defaults which should have been generated when you used this ESP32 template:

# 10000 has worked for my project so far but you can probably set it far lower

CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=10000

Reducing binary size

When using this library and other libraries, you may encounter another problem: you run out of memory. To fix this, you need to change some compiler settings. For that, I would suggest to have a look at this and this guide.

Dependencies

~6–15MB
~181K SLoC