Pump

Languages and libraries

web framework library

SHOW HN2011

118points
61comments
#84of 1,097 in 2011
Top 8%of 2011 by points

How HN took it

RoastedHalf or more of the comments are critical

1 positive, 9 neutral or asking, 1 mixed, 21 critical, out of 32 comments about the project. Thread score -0.56.

Idea: 1 for, 14 againstDesign: 0 for, 3 againstPerformance: 0 for, 2 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Simplicity of the Rack-style API

    From 1 comment
    • The Rack style API is nice for the simplicity. I <3 it. The Rack style api is NOT a great representation of the HTTP protocol. Specifically anything with a streaming or chunked…
      collint on HN
  • Rack-style ecosystem interoperability idea is appealing

    From 1 comment
    • I believe the intent is to be Rack[1] for Python. The beauty of Rack is that I can build a new web framework, web server, or web app plugin and have it "just work" with the rest…
      teej on HN

Objections

  • Duplicates Werkzeug and WebOb, which already solve this

    From 3 comments
    • "What WSGI should have been." Well, not at all. Pump is what werkzeug, webob, and other more friendly wrappers on WSGI already are. Basically pointless duplication of work,…
      justin_vanw on HN
    • Werkzeug and WebOb already do what you are trying to do, and they do it in a completely fantastic way. I'm not saying that to discourage you from learning and contributing, but…
      justin_vanw on HN
    • What middleware do you think are missing? In general, stuffing application logic into middleware leads to problems, so I don't think your premise is sound.…
      justin_vanw on HN
  • Reinvents WSGI without understanding HTTP needs like streaming and chunked responses

    From 3 comments
    • "What WSGI should have been." Well, not at all. Pump is what werkzeug, webob, and other more friendly wrappers on WSGI already are. Basically pointless duplication of work,…
      justin_vanw on HN
    • I don't see any way to use Pump to stream data in (a very long POST) or stream data out (a very long body). While it is certainly "dead simple", claiming that it is "what WSGI…
      saurik on HN
    • The Rack style API is nice for the simplicity. I <3 it. The Rack style api is NOT a great representation of the HTTP protocol. Specifically anything with a streaming or chunked…
      collint on HN
  • Dict-based responses prevent streaming and lazy loading

    From 2 comments
    • by passing dicts you are removing what makes WSGI work so well: lazy loading, chunked responses, middleware (encoding, caching etc.) by decorating, iterators/generators etc. your…
      nikcub on HN
    • I don't see any way to use Pump to stream data in (a very long POST) or stream data out (a very long body). While it is certainly "dead simple", claiming that it is "what WSGI…
      saurik on HN
  • Wrong priorities for a startup to build its own framework

    From 2 comments
    • I'd advise you to spend more of your time on building what's the core of your new business, because there are tons of higher priority things you'll have to accomplish. Web…
      mkramlich on HN
    • At the risk of sounding harsh: it's an incredible failure of time and project management for you to have written your own Python web framework as part of launching a startup.
      jessedhillon on HN
  • Abstraction hides HTTP details and restricts usable subset

    From 1 comment
    • What middleware do you think are missing? In general, stuffing application logic into middleware leads to problems, so I don't think your premise is sound.…
      justin_vanw on HN

Requests

  • Support streaming request and response bodies

    From 2 comments
    • I don't see any way to use Pump to stream data in (a very long POST) or stream data out (a very long body). While it is certainly "dead simple", claiming that it is "what WSGI…
      saurik on HN
    • As a special case, how about allowing the response body to be an iterable, and writing whatever blocks of data it produces back to the client? You should also allow multiple…
      sigil on HN
  • Allow iterable response bodies and multiple headers with the same name

    From 1 comment
    • As a special case, how about allowing the response body to be an iterable, and writing whatever blocks of data it produces back to the client? You should also allow multiple…
      sigil on HN
  • Distinguish script name from path info

    From 1 comment
    • One issue that I have with it is that there is no distinction between script name and path info. Obviously, you don't have to call them that, but not having a distinction between…
      LeafStorm on HN
  • Plan for websocket support

    From 1 comment
    • Looks useful, though I think any modern abstraction like this should come with at least the scaffolding for future support of websockets. (They are a bit in flux right now, but…
      radarsat1 on HN

Questions

  • What is the purpose and what use cases does Pump serve?

    From 2 comments
    • This seems interesting but I'm not sure why. What are some use cases?
      pbreit on HN
    • I don't get the purpose. WSGI was meant to low level to cover the common minimum. If you want request, response semantics, use a higher level library - I use werkzeug which wraps…
      irahul on HN
  • Why is start_response considered unpythonic?

    From 1 comment
    • > In my view, the problems with WSGI are that it has an unpythonic API (see: start_response and environ), Why do you find `start_response` unpythonic?
      irahul on HN

Alternatives named

  • Werkzeug

    From 2 comments
    • It seems like the author here is comparing Pump to WSGI -- perhaps a better comparison is to Ian Bicking's WebOb (http://webob.org) or Armin Ronacher's Werkzeug…
      clarkevans on HN
    • Werkzeug and WebOb already do what you are trying to do, and they do it in a completely fantastic way. I'm not saying that to discourage you from learning and contributing, but…
      justin_vanw on HN
  • WebOb

    From 2 comments
    • It seems like the author here is comparing Pump to WSGI -- perhaps a better comparison is to Ian Bicking's WebOb (http://webob.org) or Armin Ronacher's Werkzeug…
      clarkevans on HN
    • As a special case, how about allowing the response body to be an iterable, and writing whatever blocks of data it produces back to the client? You should also allow multiple…
      sigil on HN
  • Rack

    From 1 comment
    • I believe the intent is to be Rack[1] for Python. The beauty of Rack is that I can build a new web framework, web server, or web app plugin and have it "just work" with the rest…
      teej on HN
  • Ring (Clojure)

    From 1 comment
    • Thanks for the feedback. I'm not willing to accept that WSGI couldn't be this simple. Pump's specification is modeled on Ring for Clojure (https://github.com/mmcgrana/ring), and…
      pyninja on HN
  • Brubeck

    From 1 comment
    • Here's another NoWSGI HTTP server library (Brubeck): http://news.ycombinator.com/item?id=2770866
      benatkin on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/2810373)