HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
pyGrowler
Growler
Python2016–2016
pyGrowler / Growler

Growler

A micro web-framework using asyncio coroutines and chained middleware.

2Distinct people
4Mentions
0Explicit recommenders
688GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A micro web-framework using asyncio coroutines and chained middleware.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by hour4 dated mentions

Observed mentions: 2016-05-04 21:41:55 UTC to 2016-05-05 13:20:08 UTC.

0122016-05-04 21:00:00 UTC to 2016-05-04 22:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 commentsMay 4, 21:002016-05-04 22:00:00 UTC to 2016-05-04 23:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-04 23:00:00 UTC to 2016-05-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 00:00:00 UTC to 2016-05-05 01:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 01:00:00 UTC to 2016-05-05 02:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 02:00:00 UTC to 2016-05-05 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 03:00:00 UTC to 2016-05-05 04:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 04:00:00 UTC to 2016-05-05 05:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 05:00:00 UTC to 2016-05-05 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMay 5, 05:002016-05-05 06:00:00 UTC to 2016-05-05 07:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-05-05 07:00:00 UTC to 2016-05-05 08:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 08:00:00 UTC to 2016-05-05 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 09:00:00 UTC to 2016-05-05 10:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 10:00:00 UTC to 2016-05-05 11:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 11:00:00 UTC to 2016-05-05 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 12:00:00 UTC to 2016-05-05 13:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-05 13:00:00 UTC to 2016-05-05 14:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 5, 13:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
May 4, 21:002016-05-04 21:00:00 UTC2016-05-04 22:00:00 UTC211
May 4, 22:002016-05-04 22:00:00 UTC2016-05-04 23:00:00 UTC000
May 4, 23:002016-05-04 23:00:00 UTC2016-05-05 00:00:00 UTC000
May 5, 00:002016-05-05 00:00:00 UTC2016-05-05 01:00:00 UTC000
May 5, 01:002016-05-05 01:00:00 UTC2016-05-05 02:00:00 UTC000
May 5, 02:002016-05-05 02:00:00 UTC2016-05-05 03:00:00 UTC000
May 5, 03:002016-05-05 03:00:00 UTC2016-05-05 04:00:00 UTC000
May 5, 04:002016-05-05 04:00:00 UTC2016-05-05 05:00:00 UTC000
May 5, 05:002016-05-05 05:00:00 UTC2016-05-05 06:00:00 UTC000
May 5, 06:002016-05-05 06:00:00 UTC2016-05-05 07:00:00 UTC101
May 5, 07:002016-05-05 07:00:00 UTC2016-05-05 08:00:00 UTC000
May 5, 08:002016-05-05 08:00:00 UTC2016-05-05 09:00:00 UTC000
May 5, 09:002016-05-05 09:00:00 UTC2016-05-05 10:00:00 UTC000
May 5, 10:002016-05-05 10:00:00 UTC2016-05-05 11:00:00 UTC000
May 5, 11:002016-05-05 11:00:00 UTC2016-05-05 12:00:00 UTC000
May 5, 12:002016-05-05 12:00:00 UTC2016-05-05 13:00:00 UTC000
May 5, 13:002016-05-05 13:00:00 UTC2016-05-05 14:00:00 UTC101

What Hacker News says

4 sources
Thanks! The biggest missing piece is simple, well-tested middleware. My focus has been on very general middleware; a kind of 'meta-middleware' that actually spec out a common behavior to minimize surprises and boilerplate. For example, my Renderer & RenderEngine classes[0] don't do anything on their own, but are intended to be used by other, more specific renderers (eg MakoRenderer, JinjaRenderer). I think some common functionality really need to be standardized and not done ad-hoc, as conflicts could arise. (more description on how Renderers work below) The next one of these I'd like to solve is authentication: a standard interface for passwords/oauth/etc. I've kinda used http://passportjs.org before, might be a starting point; I don't know what a pythonic version would look like. ## Non-Middleware - Figure out equivalent of JS EventEmit
Read the rest
ter interface. Currently I have no good way to do something like res.on('send-headers', cb) ~ (thinking res.events['send-headers'].add(cb)) with events as EventManager object. Maybe decorators here? - ETAGs - HTTP/2 - pytest-growler for automated fixtures - I don't think an admin panel is necessary (can't beat django) but would like some CLI tools for site creation, testing, and deployment. Renderer Explaination: (too many 'render' words) The author creates a RenderEngine as the actual middleware: app.use(MakoRenderer("/path/to/view")). All this middleware does is attach a callable Renderer object to res at res.render if it doesn't exist, then add itself to res.render - this allows multiple RenderEngines in the same app (if the author desires) - and none of them will clobber one another. Upon calling the Renderer: res.render('foo', data_obj), the callable scans through the engines until one with 'foo' is found, then the rendered text is sent. It's non-(obvious|trivial) situations like these I want in Growler proper (some batteries included) - the rest can be extensions. [0] https://github.com/pyGrowler/Growler/blob/dev/growler/middle...
In Growler: Asyncio Micro-Framework in Python

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.