Skip to content

Releases: swift-primitives/swift-render-primitives

swift-renderable initial release

Choose a tag to compare

@coenttb coenttb released this 01 Dec 15:09

swift-renderable is a generalization of the previous pointfree-html. For HTML rendering, see swift-html-rendering.

v2.1.0 - RFC Pattern & Performance Optimizations

Choose a tag to compare

@coenttb coenttb released this 21 Nov 19:46

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

Choose a tag to compare

@coenttb coenttb released this 25 Jul 12:44

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

Choose a tag to compare

@coenttb coenttb released this 20 Mar 10:39

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