I’m pleased to announce Huxley 2, the new cross-platform .NET Core version of my JSON proxy for the GB railway Live Departure Boards SOAP API. Huxley is now based on ASP.NET Core, allowing it to run on Windows, macOS and Linux. Try it out on the demo server (no access token needed).
Like many people, I recently found myself with a sudden increase in free time. So, for the past month, I’ve focussed on various voluntary environmental and open source projects.
Huxley 2 is a CORS enabled cross-platform JSON ReST proxy for the GB NRE LDB WCF SOAP XML API (called Darwin). It supports both the Public Version (PV) and the Staff Version (SV). It’s built with ASP.NET Core LTS, C# 8.0 and lots of abbreviations!
The primary purpose of Huxley 2 is to allow easy use of the LDB API from a browser-based client-side PWA made with JavaScript or TypeScript. Additionally, it opens up the Windows enterprise API to agile developers on macOS and Linux.
There are some significant changes between version 1 and 2:
- Reimplementation on ASP.NET Core allowing Huxley to run on Windows, macOS and Linux
- You can now use Huxley on any platform (pun intended)
- .NET Core 3.1 LTS supported until 2022-12-03
- Support for time offset and window parameters for queries of past trains
- Station code retrieval from staff reference web service (with staff token)
- Optional update checking
- Response caching support (wasn’t available on old WebAPI controllers)
- Improved performance and flexible architecture using agile best practices
- Modern and simplified code base using the latest C# language features
- C# 8.0 nullable and non-nullable reference types used throughout
- A full suite of automated unit tests and CI / CD pipelines
I’ve set up a demo server on Azure (running Linux) with no token needed in the URLs. Give it a go and let me know of any issues.
Once a few more bugs are squashed and I’ve tidied up the source a bit then I’ll release the code on GitHub.
The source code is now released and there is a setup guide here.
Although there’s probably not much use for the data right now, hopefully people will be back on public transport in the not-to-distant future.