Module to allow IIS to act as an ASGI Interface Server for Django Channels. (HTTP and WebSockets)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
AsgiHandler
AsgiHandlerLib Rejig the Logger class to allow re-use. Aug 26, 2016
AsgiHandlerTest
IntegrationTests Allow number per pool to be configured. Nov 14, 2016
ProcessPool
ProcessPoolLib
ProcessPoolTest Use <processPools/> tag to decide what to launch. Aug 25, 2016
SharedUtils
SharedUtilsTest Create SharedUtils. Aug 26, 2016
cli
dependencies
.gitignore
CMakeLists.txt
README.md
appveyor.yml

README.md

iis-asgi-handler — Build status

Module to allow IIS to act as an ASGI Interface Server for Django Channels. Supports both HTTP and WebSockets.

Building

Requires:

  • Visual Studio 2015
  • CMake 2.8+

To build:

  • mkdir build && cd build
  • Then either:
    • x86: cmake .. -G "Visual Studio 14 2015"
    • x64: cmake .. -G "Visual Studio 14 2015 Win64"
  • cmake --build . --configuration Debug
    • Or open the .sln file it creates.

Installing

It isn't ready for people to install and use. If you're really keen, you can look at the code in IntegrationTests/fixtures/ for an idea of how to install it.

The module can not currently be run on IIS 7.5 and it requires the Web Sockets module to be installed. Eventually we will support IIS 7.5 (without Web Socket support).

Tests

There are two sets of tests:

  • Unit tests, in RedisAsgiHandlerTests/. These use googletest and googlemock.
  • Integration tests, in IntegrationTests/. These use pytest and install the module into IIS before each test.

To run the integration tests you will need the following installed:

  • redis (or redis-64 chocolatey package).
  • IIS 8+ with the Web Sockets module installed.

To run all the tests: ctest -C Debug --output-on-failure. Append -R AsgiHandler to run just the unit tests, or -R Integration to run just the integration tests.

Dependencies

Relies on the following libraries, which are downloaded and built automatically:

  • msgpack-c
  • Microsoft fork of hiredis
  • googletest / googlemock for unit tests

There are a number of Python dependencies recorded in IntegrationTests/requirements.txt. These are automatically installed into a venv when the project is built.