Skip to content

Proposal: refactor pingoo to te built on top of rama #7

@GlenDC

Description

@GlenDC

Pingoo comes at a great timing given somewhere in next months I was planning
to built similar features in some new rama-* crates (https://github.com/plabayo/rama/),
as well as some binary tool on top. However I would gladly give up the plans
to build that binary project myself and instead help you make pingoo a reality.

Links for Rama:

Currently Pingoo is built on top of rustls and hyper as far as I can see. This is great as it would it fairly
easy to switch that underlying tech over to building on top of rama instead. The http core of rama
is a permanent fork of hyper, but we stay completely and actively in sync with upstream and also
re-contribute back where it makes sense and is desired by Sean (creator of hyperium).

I think building on top of rama makes complete sense as it is there to empower you and allow exactly
the kind of use cases that you want to do with Pingoo. And like I said, I would have to otherwise
anyway still have to do it myself anyway for Rama... Instead I think it's more fruitful for both my team,
your team and our customers that we work together. I would gladly:

  • go with you in a conversation on this matter
  • willing to to the development work to replace hyper with rama
  • rama is already rustls compatible as first-class citizen, so no changes needed there afaik
  • from that point onward prioritise missing features / bug-fixes in function of pingoo in case there are such
    things atm in rama
  • help you develop pingoo itself as well

Originally I sent this email to hello@pingoo.io but so far got no reply.
As such I'm hoping this might perhaps be an easier way to communicate?

  • Hot-reload TLS certificates #4 is easily solved with rama as we already have a dynamic issuer, so would be just a matter of implementing that issuer trait with something that facilitates this behaviour
  • Support for the Proxy Protocol #6 is even easier solved as we already have PROXY protocol support
  • QUIC / HTTP3 support #1 is not yet in rama (H3/quic), but it's on the roadmap and to be frank it's mostly waiting for an excuse to have it be added. In case it is urgent for pingoo I would move this up to the priority chain with pleasure
  • Support single page applications #3 is also easily possible, I have most stuff there to have it easily implemented, so would be fine too
  • Automatic TLS certificate #2 our ACME client support is already ready to use, happy to further improve where needed. It's what we use ourselves already as well. Soon we'll also have ACME server support

All in all I think Rama would be an excellent foundation for Pingoo. I'll help you migrate to it with pleasure and from there onwards help you walk this journey together:

  • I can help co-maintain or just contribute to pingoo, as you see fit
  • help improve stuff in rama (or add) where it is useful for pingoo

Happy to talk here, via chat, email or video call. All same for me.

Either way, best of luck with the project. Cool either way!


btw, we do not only develop and maintain rama, but we also have a podcast about networking and rust, with a human touch. Would gladly make an episode about pingoo as well as it brings a lot of concepts together that we have previously covered and are still to cover. The podcast can be found at https://netstack.fm/. That's a separate proposal, but want to share the option with you regardless.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions