|  | 1 | This is a list of tasks that the Channels project needs doing that comes under the remit of Django's MOSS grant; anything on this page is eligible for funding via the grant with '''pre-approval''' from the Django MOSS committee; you'll get in touch with the committee, discuss the work and your history with open-source contribution (we strongly prefer that you have a proven track record on at least a few things) and the amount you'd like to be paid. | 
          
            |  | 2 |  | 
          
            |  | 3 | If you're interested in working on one of these tasks, get in touch with Andrew Godwin <andrew@aeracode.org> as a first point of contact; he can help talk you through what's involved, and help judge/refine your proposal before it goes to the committee. | 
          
            |  | 4 |  | 
          
            |  | 5 | == Tasks == | 
          
            |  | 6 |  | 
          
            |  | 7 | * HTTP/2 support for Daphne (based on upcoming Twisted HTTP/2 support) (https://github.com/andrewgodwin/channels/issues/14) | 
          
            |  | 8 | * Generic WebSocket and base consumers | 
          
            |  | 9 | * Messaging (IRC/Slack/etc.) interface server and ASGI spec extension | 
          
            |  | 10 | * Full test suite for Daphne HTTP/WS encoding to ASGI | 
          
            |  | 11 | * Tests for file and streaming response handling inside Django | 
          
            |  | 12 | * Port Daphne to run on asyncio or write a second ASGI HTTP/WS interface server on it | 
          
            |  | 13 | * Additional tutorials (written or video) | 
          
            |  | 14 | * Scheduled task/delay interface server (https://github.com/andrewgodwin/channels/issues/115) | 
          
            |  | 15 | * Automated load testing setup and runner based on AWS/Azure/etc (https://github.com/andrewgodwin/channels/issues/28) | 
          
            |  | 16 | * In-page debugging help for websocket consumers (ideas and implementation needed) | 
          
            |  | 17 |  | 
          
            |  | 18 |  | 
          
            |  | 19 | == Completed Tasks == | 
          
            |  | 20 |  | 
          
            |  | 21 | These have already been done and paid for: | 
          
            |  | 22 |  | 
          
            |  | 23 | * Write specification for channel layer backends (ASGI) | 
          
            |  | 24 | * Write reference memory-only backend | 
          
            |  | 25 | * Write test ORM-driven backend | 
          
            |  | 26 | * Write production-ready Redis backend | 
          
            |  | 27 | * Write conformance test suite for specification | 
          
            |  | 28 | * Write ASGI-compatible HTTP + WebSocket mixed-mode server | 
          
            |  | 29 | * Write WebSocket benchmark suite | 
          
            |  | 30 | * ASGIRequest subclass and decoding from ASGI | 
          
            |  | 31 | * Response encoding to ASGI | 
          
            |  | 32 | * ASGI-compatible Handler and path into view layer | 
          
            |  | 33 | * Streaming and file response support | 
          
            |  | 34 | * HTTP authentication support | 
          
            |  | 35 | * Sessions based on reply channel not cookies | 
          
            |  | 36 | * Channel session authentication support | 
          
            |  | 37 | * Runserver integration with Daphne (inc. autoreload) | 
          
            |  | 38 | * Routing system for channels similar to URLs | 
          
            |  | 39 | * runworker command for running workers in production | 
          
            |  | 40 | * Optional in-order enforcement for WebSocket consumers | 
          
            |  | 41 | * Tutorial documentation | 
          
            |  | 42 | * Deployment/Scaling documentation | 
          
            |  | 43 | * Reference/Concepts documentation | 
          
            |  | 44 | * Example projects (channels-examples) |