# \[ANN\] AHT an Ada HTTP/1.1 and WebSocket client with TLS via OpenSSL or mbedTLS

**URL:** https://forum.ada-lang.io/t/ann-aht-an-ada-http-1-1-and-websocket-client-with-tls-via-openssl-or-mbedtls/4721
**Category:** Releases
**Tags:** ada
**Created:** [September 7, 2026, 10:09am UTC](https://forum.ada-lang.io/t/ann-aht-an-ada-http-1-1-and-websocket-client-with-tls-via-openssl-or-mbedtls/4721 "2026-09-07T10:09:23Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![ovenpasta](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/ovenpasta/32/1061_2.png) [@ovenpasta](https://forum.ada-lang.io/u/ovenpasta)
#### Post date: [September 7, 2026, 10:09am UTC](https://forum.ada-lang.io/t/ann-aht-an-ada-http-1-1-and-websocket-client-with-tls-via-openssl-or-mbedtls/4721/1 "2026-09-07T10:09:23Z")

</div>

> **[GitHub - ovenpasta/aht: Ada HTTP/1.1 and WebSocket client with TLS via...](https://github.com/ovenpasta/aht)**
>
> Ada HTTP/1.1 and WebSocket client with TLS via OpenSSL or mbedTLS

---

<div class="post-metadata">

### Author: ![ValorZard](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/valorzard/32/623_2.png) [@ValorZard](https://forum.ada-lang.io/u/ValorZard)
#### Post date: [September 7, 2026, 10:03pm UTC](https://forum.ada-lang.io/t/ann-aht-an-ada-http-1-1-and-websocket-client-with-tls-via-openssl-or-mbedtls/4721/2 "2026-09-07T22:03:11Z")

</div>

this looks super relevant to the stuff I’ve been working on.

How down would you be if I forked it and added it to my async runtime thing?

---

<div class="post-metadata">

### Author: ![ovenpasta](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/ovenpasta/32/1061_2.png) [@ovenpasta](https://forum.ada-lang.io/u/ovenpasta)
#### Post date: [September 7, 2026, 10:31pm UTC](https://forum.ada-lang.io/t/ann-aht-an-ada-http-1-1-and-websocket-client-with-tls-via-openssl-or-mbedtls/4721/3 "2026-09-07T22:31:40Z")

</div>

Hi, no issues at all, it is Apache 2.0… so as long as you comply… 🙂  
I use it for my own stuff and I published it since it could be useful to someone else (I wouldn’t have written it if it had existed already)

---

<div class="post-metadata">

### Author: ![dmitry-kazakov](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/dmitry-kazakov/32/522_2.png) [@dmitry-kazakov](https://forum.ada-lang.io/u/dmitry-kazakov)
#### Post date: [September 8, 2026, 8:55am UTC](https://forum.ada-lang.io/t/ann-aht-an-ada-http-1-1-and-websocket-client-with-tls-via-openssl-or-mbedtls/4721/4 "2026-09-08T08:55:19Z")

</div>

> [@ValorZard](#):
>
> this looks super relevant to the stuff I’ve been working on.

Asynchronous I/O is more relevant for HTTP server than client. In most cases a client can live with blocking I/O.

Note also that what implementing asynchronous I/O with OpenSSL and TLS you would have to choose between their asynchronous layers (e.g. **bio** in OpenSSL) and the synchronous ones. I.e. the level where you would insert stuff converting blocking into non-blocking:

```ada
   socket
    |
   TLS
    |
   HTTP / WebSocket

```

---

<div class="post-metadata">

### Author: ![docandrew](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/docandrew/32/396_2.png) [@docandrew](https://forum.ada-lang.io/u/docandrew)
#### Post date: [September 9, 2026, 10:42pm UTC](https://forum.ada-lang.io/t/ann-aht-an-ada-http-1-1-and-websocket-client-with-tls-via-openssl-or-mbedtls/4721/5 "2026-09-09T22:42:01Z")

</div>

Still pre-alpha but coming along if you are interested in a pure Ada TLS solution without having to use OpenSSL: [GitHub - docandrew/SPARKTLS: TLS 1.3 Implementation in SPARK · GitHub](https://github.com/docandrew/SPARKTLS)

---

<div class="post-metadata">

### Author: ![ovenpasta](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/ovenpasta/32/1061_2.png) [@ovenpasta](https://forum.ada-lang.io/u/ovenpasta)
#### Post date: [September 10, 2026, 1:29pm UTC](https://forum.ada-lang.io/t/ann-aht-an-ada-http-1-1-and-websocket-client-with-tls-via-openssl-or-mbedtls/4721/6 "2026-09-10T13:29:15Z")

</div>

Thanks, I really appreciate the suggestion and the work behind SPARKTLS. Having a native Ada/SPARK TLS implementation is genuinely interesting, and I’m glad to see this kind of work happening in the ecosystem.

For now, I’d still prefer AHT to rely on mature and widely deployed TLS implementations such as OpenSSL or mbedTLS. With something as security-critical as TLS, maturity, interoperability, review, and long-term maintenance matter a lot to me.

That said, I’m very open to revisiting this as SPARKTLS matures. If you’d like to fork AHT and experiment with integrating it, I’d be very interested to see how it works out. A solid native Ada/SPARK TLS stack could be a very natural fit for AHT in the future.

---

<div class="post-metadata">

### Author: ![ValorZard](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/valorzard/32/623_2.png) [@ValorZard](https://forum.ada-lang.io/u/ValorZard)
#### Post date: [September 11, 2026, 1:12am UTC](https://forum.ada-lang.io/t/ann-aht-an-ada-http-1-1-and-websocket-client-with-tls-via-openssl-or-mbedtls/4721/7 "2026-09-11T01:12:31Z")

</div>

man i really want to combine this with the async runtime I’m creating in SPARK, but I have to sit down and actually clean up all of this generated AI documentation first.

(if your interested, I can give you access to the repo if you give me your github account username)
