This page provides a rough guide to our plans for Cro through to a 1.0 release. It will be refined in response to user feedback.
This release is primarily aimed at adding features we'd have loved to have in the initial public release of Cro (0.7), but simply didn't have time to do.
- More complete handling of links between services. (✓ DONE in 0.7.1)
Cro::HTTP::Router. (✓ DONE in 0.7.1)
- Provide for per-
routeblock middleware in
Cro::HTTP::Router. (✓ DONE in 0.7.2)
- Provide roles to ease writing HTTP middleware. (✓ DONE in 0.7.2)
- Web interface providing the same features as the
crocommand line tool. (✓ DONE in 0.7.3)
- Push promise support for HTTP/2. (✓ DONE in 0.7.3)
- In-memory HTTP session support, a base role for persistent session support, and support for sessions/user objects in the router. Also, an example of Redis to back the persistent session store and how to build a login system. (✓ DONE in 0.7.3)
- Provide Docker containers and have
cro stubtemplates include a
Dockerfile. (✓ DONE in 0.7.4)
- Generalize body parsing and provide it for web sockets messages and ZeroMQ messages. (🔧 DONE FOR WEBSOCKETS in 0.7.3)
Provide support for some further use cases, and work towards making both Cro and the services written in it more dependable.
- Provide a module to aid writing tests of HTTP services and web socket applications. (🔧 DONE FOR HTTP in 0.7.5)
- Provide implementations of timeout, retry, circuit breaker, and other common robustness patterns.
- Implement HTTP reverse proxy support.
- Ensure Cro features are fully working on Windows and OSX.
- Provide Cro support for working with some common message queues, at least using STOMP.
The 1.0 release will not add any notable features over 0.9, but rather will focus on ensuring Cro users can feel confident using it in production environments.
- Set up a bunch of Cro services to run continually as a stress test, both on Rakudo Perl 6 releases and also on daily HEAD snapshots to help catch regressions early, to provide a better experience for Cro users. Ensure this information is published.
- Perform a security review, and provide clear instructions on submitting vulnerabilities along with documenting the process by which they will be handled.
- Document API stability and deprecation policy.