[ANN] gemini-php: A Gemini server written in PHP

Neil McKillop <neil (a) mckillop.org>

I wrote a simple implementation of a Gemini server in PHP.  It's very easy
to get up and running.

It was intended as one of the examples to help me teach socket programming
at a local open source workshop I run but I've enjoyed learning about the
protocol so I'm working on making it more featureful.

Full instructions at gemini://glasgow.social/gemini-php (or
https://opensource.glasgow.social/gemini-php)

Neil.

Link to individual message.

Kevin Sangeelee <kevin (a) susa.net>

Great stuff - it's hard not to have a soft spot for such a pragmatic
language as PHP!

I measured performance at around 35 requests per second for the index page
vs 105 for gemserv (Rust, native binary). Resident RAM use was ~25MB vs
~7MB for gemserv.

I'd say that's pretty respectable for an interpreted language with a
runtime, that's forking connections. My own Java server weighs in at ~100MB
RAM, I must measure throughput, for fun.

Thanks for sharing!

Kevin


On Mon, 28 Sep 2020 at 04:39, Neil McKillop <neil at mckillop.org> wrote:

> I wrote a simple implementation of a Gemini server in PHP.  It's very easy
> to get up and running.
>
> It was intended as one of the examples to help me teach socket programming
> at a local open source workshop I run but I've enjoyed learning about the
> protocol so I'm working on making it more featureful.
>
> Full instructions at gemini://glasgow.social/gemini-php (or
> https://opensource.glasgow.social/gemini-php)
>
> Neil.
>

Link to individual message.

Jason McBrayer <jmcbray (a) carcosa.net>

Kevin Sangeelee <kevin at susa.net> writes:

> Great stuff - it's hard not to have a soft spot for such a pragmatic language as PHP!
>
> I measured performance at around 35 requests per second for the index
> page vs 105 for gemserv (Rust, native binary). Resident RAM use was
> ~25MB vs ~7MB for gemserv.
>
> I'd say that's pretty respectable for an interpreted language with a
> runtime, that's forking connections. My own Java server weighs in at
> ~100MB RAM, I must measure throughput, for fun.

What did you use to measure requests per second? Is there some
equivalent to ab(1) for Gemini? I'm curious about the performance of my
own server ? it's a pretty naive implementation.

-- 
+-----------------------------------------------------------+
| Jason F. McBrayer                    jmcbray at carcosa.net  |
| A flower falls, even though we love it; and a weed grows, |
| even though we do not love it.            -- Dogen        |

Link to individual message.

---

Previous Thread: Dioscuri, another application layer protocol

Next Thread: Android client TvĂĽ is now Ariane. 1.0.0 release