Skip to content

Latest commit

 

History

History
70 lines (50 loc) · 2.2 KB

File metadata and controls

70 lines (50 loc) · 2.2 KB

Puff Roadmap

Puff is an evolving framework with plenty of development goals ahead.


Priority Issues

  • Lack of Tests No unit tests have been implemented. No profilers or load tests either.
  • Extensible Examples Examples repository needs to be made more robust.
  • Code Quality Significant improvements are needed in code cleanliness and readability.
  • Security Schema Support Support for including security schemas, like OAuth2 and JWT on the autogenerated OpenAPI documentation.

Missing Features

  • Request Validation Ability to define custom validation functions for requests.

Nice-to-Haves

  • Schema Generation Enhancements Schema generation currently does not support enums, and Go’s lack of native enums requires custom enum parsing.
  • Custom CSS for Swagger Allow users to define custom CSS for the Swagger documentation page.
  • Documentation Page for Puff Need a UI solution for documentation using a service like docusaurus or similar.

Partially Implemented Features

  • Response Handling
    • Currently, only user-defined JSON schemas are supported.
    • Explore options to support HTML, XML, and plain text responses.
  • Logger Accessibility
    • The logger cannot be accessed in many parts of the app, such as middleware.
    • Add functionality for log grouping by request.

Areas for Exploration

Performance Enhancements

  • Profiling Run a profiler to identify potential optimizations before refactoring.
  • Route Matching
    • Assess if regex-based route matching requires improvement.
    • Consider switching to a map-based route structure for efficiency.
  • Swagger Generation Overhead Reduce the overhead if the user opts out of Swagger generation. Currently, some global variables and reflection may cause unnecessary load.
  • Context Pools Implement context pooling to manage resources more effectively.
  • Faster JSON Serializer Evaluate whether an alternative JSON serializer is faster than the standard library, or allow users to pass a custom serializer that matches the serde interface.

Design Review

  • Error Handling in Handlers Reconsider if puff.handler should return an error.