Releases: swift-primitives/swift-render-primitives
Release list
swift-renderable initial release
swift-renderable is a generalization of the previous pointfree-html. For HTML rendering, see swift-html-rendering.
v2.1.0 - RFC Pattern & Performance Optimizations
RFC Pattern Implementation
- Implemented RFC pattern with ContiguousArray as canonical byte representation
- Added zero-copy ContiguousArray initializer for HTML types
- Added Array convenience initializer
- Updated String initializer to derive from canonical bytes
- Deprecated legacy .render() methods in favor of RFC pattern
Performance Optimizations
- Eliminated UTF-8 conversions by using [UInt8] in Configuration (indentation/newline)
- Added capacity pre-allocation support to HTMLPrinter (reservedCapacity parameter)
- Optimized attribute value HTML escaping with fast-path detection (~30% faster)
- Integrated INCITS 4-1986 for ASCII constants
- Performance: ~3,500 documents/second (~280µs per complete HTML document)
Documentation
- Updated README with RFC pattern examples
- Added comprehensive inline documentation
- Updated performance metrics throughout codebase
Testing
- Added comprehensive performance tests for attribute escaping
- Added performance tests for capacity optimization
- All 198 tests passing
CI/CD
- Updated CI to use Swift 6.2 for all jobs
- Adjusted performance test thresholds for CI runners
- Improved cache key management
Breaking Changes
None - all changes are backward compatible through deprecations.
2.0.0
PointFreeHTML 2.0.0
🎉 Major Release
This is a major release of PointFreeHTML featuring comprehensive improvements, refactoring, and performance enhancements. This version includes breaking changes that improve maintainability and performance.
✨ What's New
Architecture Improvements
- Complete MediaQuery to AtRule refactoring - Better CSS architecture with improved organization
- Enhanced cross-platform compilation support for HTMLInlineStyle
- Improved code organization and API consistency throughout the library
- **PointFreeHTMLElements are now on a separate branch, to focus the library on just printing.
Performance Enhancements
- Actor-based styling optimizations for better concurrent performance
- Streamlined rendering pipeline with significant performance improvements
- Optimized HTML styling performance with enhanced rendering efficiency
Documentation & Testing
- Comprehensive documentation additions for Selector and Pseudo components
- Enhanced library integration guide with practical examples
- Improved testing infrastructure with better benchmarking capabilities
- Performance testing suite with comprehensive benchmark data
Developer Experience
- Better library integration with improved APIs
- Enhanced styling performance through optimized rendering
- Improved maintainability with cleaner code structure
⚠️ Breaking Changes
This is a major version release with breaking changes. Please review your code and update accordingly. The changes improve the overall API consistency and performance of the library.
🚀 Getting Started
Update your Package.swift to use the new version:
.package(url: "https://github.com/coenttb/pointfree-html.git", from: "2.0.0")📖 Documentation
Check out our comprehensive documentation and guides for detailed information on the new features and migration path.
Full Changelog: 1.0.0...2.0.0
1.0.0
PointFreeHTML 1.0.0
The rewrite of swift-html by Brandon Williams and Stephen Cellis as found on https://github.com/pointfreeco/pointfreeco:
- Forked into a separate package for ease of use via SPM
- SwiftUI-style DSL for HTML elements and documents
- Enhanced type safety for attributes and elements
- Swift 5.9+ compatibility with modern language features
- DocC documentation support
- swift-dependencies integration for better testability
- Swift Concurrency support
- Streamlined component creation
Breaking changes:
- Redesigned API for idiomatic Swift experience
- Module renamed from HTML to PointFreeHTML
- New package name: pointfree-html
Full Changelog: https://github.com/coenttb/pointfree-html/commits/1.0.0