Puff is an evolving framework with plenty of development goals ahead.
- 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.
- Request Validation Ability to define custom validation functions for requests.
- 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.
- 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.
- 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.
- Error Handling in Handlers
Reconsider if
puff.handlershould return an error.