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.
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. >
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 |
---
Previous Thread: Dioscuri, another application layer protocol
Next Thread: Android client TvĂĽ is now Ariane. 1.0.0 release