# \[ANN\] Mongoose.jl v0.2.x - A fast lightweight HTTP Server

**URL:** <https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699>\
**Category:** Package Announcements\
**Tags:** package, web, performance\
**Created:** [December 23, 2025, 1:47am UTC](https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699 "2025-12-23T01:47:35Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![AbrJA](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abrja/32/207387_2.png) [@AbrJA](https://discourse.julialang.org/u/AbrJA)\
**Post date:** [December 23, 2025, 1:47am UTC](https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699/1 "2025-12-23T01:47:35Z")

</div>

Hi there,

I’m happy to announce the 0.2 release of the [Mongoose.jl](https://github.com/AbrJA/Mongoose.jl) library. A much more mature and stable release.

This release includes many new cool features, for example:

- Multi-instance (launch multiple servers on different ports)
- Multi-threading support (one thread dedicated for the event loop and multiple workers)
- New syntax (avoiding the mg\_ prefix as it was suggested)
- Among others (check the repo for more details)

Thank you for your kind feedback and any contribution to make the library better is totally welcome!

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [December 23, 2025, 8:22am UTC](https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699/2 "2025-12-23T08:22:30Z")

</div>

Nice work! How do you see this compared to Oxygen.jl?

---

<div class="post-metadata">

**Author:** ![AbrJA](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abrja/32/207387_2.png) [@AbrJA](https://discourse.julialang.org/u/AbrJA)\
**Post date:** [December 24, 2025, 4:25am UTC](https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699/3 "2025-12-24T04:25:44Z")

</div>

Hi, @DoktorMike

Mongoose.jl has three main guidelines on its design philosophy

- Lightweight, just one dependency (Mongoose\_jl)
- Simple, only a few functions and structs exported
- Fast, check the comparison [here](https://web-frameworks-benchmark.netlify.app/result?l=julia)

This guidelines come from my experience using Julia to deploy machine learning models into production

- Lightweight, smaller binary sizes and perhaps use of static compilation (juliac)
- Simple, keep only the strictly necessary and be used as a core library to build over it
- Fast, create an extremely fast framework that does justice to Julia’s reputation

---

<div class="post-metadata">

**Author:** ![simsurace](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simsurace/32/30216_2.png) [@simsurace](https://discourse.julialang.org/u/simsurace)\
**Post date:** [December 24, 2025, 8:49am UTC](https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699/4 "2025-12-24T08:49:35Z")

</div>

Being able to beat HTTP.jl and Oxygen.jl by a factor of 2-4 is nice. What are the three numbers and why are the other two much smaller than the first?

On the other hand, 4x slower than the leading Rust framework means there is probably a lot left on the table still. Is it the Julia scheduler preventing further gains?

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [December 24, 2025, 9:48am UTC](https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699/5 "2025-12-24T09:48:59Z")

</div>

Excellent! I will for sure play around with this. I’ve deployed with Oxygen.jl several times and I really liked the openAPI Swagger docs that came with it. I did struggle with speed sometimes though. Again, nice work!

---

<div class="post-metadata">

**Author:** ![AbrJA](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abrja/32/207387_2.png) [@AbrJA](https://discourse.julialang.org/u/AbrJA)\
**Post date:** [December 25, 2025, 8:30pm UTC](https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699/6 "2025-12-25T20:30:00Z")

</div>

They are Requests/Second. RPS measures the volume of traffic the system can handle RPS=TotalNumberofRequests/DurationinSeconds​ at a defined level of concurrency (in this case having 64, 256 and 512 concurrent request). The last two numbers are smaller because the C library mongoose, which is the core of this library, is single threaded so it is a bottle neck when you have a high concurrency because you can only use one thread for read and write the requests/responses.

My last goal is to build something better maybe using liburing to be able of compete with the fastest frameworks.

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [December 26, 2025, 9:56am UTC](https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699/7 "2025-12-26T09:56:48Z")

</div>

Really cool! will it be possible to support websockets?

---

<div class="post-metadata">

**Author:** ![AbrJA](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abrja/32/207387_2.png) [@AbrJA](https://discourse.julialang.org/u/AbrJA)\
**Post date:** [December 30, 2025, 3:52am UTC](https://discourse.julialang.org/t/ann-mongoose-jl-v0-2-x-a-fast-lightweight-http-server/134699/8 "2025-12-30T03:52:40Z")

</div>

I think so, I will try to include it in the next major release
