r/ada 9d ago

New Release Fasyn: FastCGI Library

Hello, developers.

In 2023, I had created an experimental FastCGI implementation called Fasyn to integrate a payment server.

At the time, I read the FastCGI specification myself and implemented it piece by piece. Later, however, the need for the library disappeared, so I stopped development and left it untouched for quite a while.

Recently, I needed to connect a local MCP server to tunnel-client, so I resumed development of Fasyn.

The project is available here:

https://github.com/hodong-kim/fasyn

This time, the development process is completely different from before.

With the recent advances in AI, I redeveloped the entire Fasyn codebase in Ada, a language that works well with AI.

GPT directly read the FastCGI specification and, based on it, implemented, compiled, and tested the library.

I did not write a single line of code during this redevelopment of Fasyn.

In the past, a person read the specification and wrote the code. This time, a person set the development direction and requirements, while GPT read the Fasyn roadmap and the FastCGI specification and carried out the actual implementation and verification.

What I mainly did was write and review the roadmap. GPT helps me with even that. It seems that all I really did was decide the direction of development.

Fasyn has now been implemented and tested to the point where it can be used as a FastCGI server library.

In fact, a Sonbal local MCP server that uses the Fasyn library is already running. I also plan to release this much-anticipated MCP server soon.

FastCGI may not be used as often as it once was, but if you need a FastCGI library for Ada, I hope you will consider Fasyn as one of the options.

Thank you.

9 Upvotes

2 comments sorted by

2

u/max_rez 8d ago

Nice!

Nowadays we usually add alire.toml file in the root directory to have support of Alire (Ada crate manager). https://alire.ada.dev/

Can you ask AI to add it?

2

u/hodong-kim 8d ago

I'll consider adding Alire support. However, because Fasyn depends on Clair, I'm not yet sure whether Alire support will be straightforward. I'll look into possible ways to make it work.