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.

Cro 0.8

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)
  • Implement include and delegate features in Cro::HTTP::Router. (✓ DONE in 0.7.1)
  • Provide for per-route block 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 cro command line tool. (🔧 MOSTLY DONE in 0.7.2)
  • Provide a plug-in for JSON Web Tokens (both to be useful of itself, but also as an example of how authentication and authorization can be integrated into HTTP applications). Along the way, consider if some "user" or "identity" slot on a HTTP request would be of value in this.
  • Push promise support for HTTP/2.
  • Generalize body parsing and provide it for web sockets messages and ZeroMQ messages.
  • Provide Docker containers and have cro stub templates include a Dockerfile.

Cro 0.9

Provide support for some further use cases, and work towards making both Cro and the services written in it more dependable.

  • Ensure Cro features are fully working on Windows and OSX.
  • Provide implementations of timeout, retry, circuit breaker, and other common robustness patterns.
  • Implement HTTP reverse proxy support.
  • Provide Cro support for working with some common message queues, at least using STOMP.

Cro 1.0

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.