Webxx Versions Save

Declarative, composable, concise & fast HTML & CSS components in C++

v0.9.2

5 months ago

Breaking changes

This version contains major performance improvements, particularly for rendering of pages with thousands/millions of elements. The changes in this release should allow a stable v1.0 to soon follow.

Reworked internals to avoid all copies where possible/desired:

  • Added internal mutable structure to allow std::move out of initialiser_list.
  • While the shape of the interface has not changed, the move/copy behaviour has, and thus implementations that are dependent on webxx's current copying behaviour, and not move-ing any supplied values, may cause breakages. See docs.

Compute component IDs at compile time:

  • The component ID hashed that enable scoped CSS are now created via constexpr.
  • While something of an internal implementation detail, the generated hash values differ from previous implementations as a result.

New features

  • Added loop utility function: The second parameter of the callback is supplied with a Loop object containing information such as index and total count. See docs.

  • Added 'head elements' to components: Components can now be constructed with a third parameter containing elements that will be collected into the new headTarget element. This is useful for preloading component assets. See docs.

Full Changelog: https://github.com/rthrfrd/webxx/compare/v0.8.1...v0.9.2

v0.9.1-alpha

5 months ago

Breaking changes

This version contains major performance improvements, particularly for rapid rendering of pages with thousands/millions of elements:

Reworked internals to avoid all copies where possible/desired:

  • Added internal mutable structure to allow std::move out of initialiser_list.
  • While the shape of the interface has not changed, the move/copy behaviour has, and thus implementations that are dependent on webxx's current copying behaviour, and not move-ing any supplied values, may cause breakages (docs will be updated to reflects this).

Compute component IDs at compile time:

  • The component ID hashed that enable scoped CSS are now created via constexpr.
  • While something of an internal implementation detail, the generated hash values differ from previous implementations as a result.

New features

  • Added loop utility function: The second parameter of the callback is supplied with a Loop object containing information about the loop such as item index and total item count.

Full Changelog: https://github.com/rthrfrd/webxx/compare/v0.9.0-alpha...v0.9.1-alpha

v0.9.0-alpha

9 months ago
  • Start of a simpler and more flexible mechanism for collecting items from components.

v0.8.1

9 months ago
  • Added "as" and "blocking" attributes.

v0.8.0

9 months ago
  • Allow CSS properties to own their values (this is consistent with HTML nodes).

v0.7.0

10 months ago
  • Added the ability to hook into the render, so now it is possible to stream the output.
  • Added lazy blocks, so now it is possible to defer generating nodes until rendering starts.

See the updated docs for info on both: https://github.com/rthrfrd/webxx#5-rendering

v0.6.0

10 months ago
  • Dropped redundant component ID hashing.
  • Existing APIs should hopefully now be stable, will move to v1.0.0 in due course.

v0.5.0

10 months ago

Dropping C++11 to target C++17, such that std::string_view can be supported without adding a lot of macro complexity.

v0.4.0

10 months ago

Significant change to component API:

  • Implemented CRTP pattern to remove need for setting component string names.
  • Improved performance with usage of typeid() to identify components.
  • Reintroduced optional component ID hashing.

v0.3.0

10 months ago
  • Introduced placeholders.
  • Made string ownership/access more predictable.
  • Temporarily removed component name hashing (to be re-introduced in future).