Skip to content

Releases: Jumballaya/buffwrap

v1.0.1 - Expose types

Choose a tag to compare

@Jumballaya Jumballaya released this 12 Apr 19:46

v1.0.1 – April 12, 2024

Added

  • Exposed BaseStrategy in main exports to support custom strategy creation
  • Exposed types for BufferWrap users
Type Name Description
ProxyShape TS-resolved shape of the struct (e.g. { a: number, b: [x, y] })
BufferType Union of valid memory types (ArrayBuffer, Buffer, etc.)
BufferStrategy<T, B> Interface for memory strategies (read/write, capacity, slicing)
ProxyAccessStrategy (Legacy) Interface for proxy access strategy (may be phased out)
StrategyConfig<T, B> Config used to initialize a strategy (offsets, stride, buffer, etc.)
WrapperConfig<T, B> Full user-facing config passed to new BufferWrap()
WrapperStructConfig<T> Field definitions: type + length per key (like schema)
BufferList<T> Struct-of-buffers format for importing/exporting
CopyTarget<T, B> Valid input types for .from() or .copyInto()

Notes

  • No functional or runtime changes
  • Fully backward compatible with v1.0.0

v1.0.0 - First Release

Choose a tag to compare

@Jumballaya Jumballaya released this 12 Apr 19:37

📦 Changelog

v1.0.0 — Stable Core Release

BufferWrap is now production-ready! 🎉

✨ Highlights

  • Strategy architectureArrayBuffer, NodeBuffer support
  • ProxyManager → Less stale proxies, shared across slices
  • Safe slicing → Zero-cost, deep slice support
  • Logical indexing → No more byte offset math
  • Insert / Move / Swap → Memory-safe, consistent proxies
  • Typed struct config → Full type safety

🔧 Improvements

  • Full test suite (unit, integration, slicing, strategy)
  • Cleaner errors, runtime validation
  • Better separation of strategy logic

💥 Breaking Changes

  • Requires explicit strategy in config
  • Proxy cache is now managed internally (no more manual .at() refresh)

Next: v1.1.0 adds reactive proxy consistency and support for SharedMemoryStrategy.

v0.9.9 - ProxyManager Refactor

Choose a tag to compare

@Jumballaya Jumballaya released this 11 Apr 19:50

BufferWrap v0.9.9 – Area-Based Changelog

Area Improvements
Proxy System Introduced ProxyManager to manage all proxy creation, reuse, movement, and indexing. Eliminates stale proxies after structural changes.
Memory Safety Proxy lifecycle centralized — proxies now update consistently on .move(), .swap(), .insert(), .copyInto(), and .from().
BufferWrap API Removed proxyCache, removed remapProxy(), and added internal ProxyAccessStrategy<T> for clean separation of logic.
Developer UX No more stale proxy bugs after structural changes. Safer, more ergonomic. .at() remains lazy but consistent.
Testing Full unit test suite added for ProxyManager. Existing BufferWrap tests updated and all passing.
Internal Refactors New generateOffsetsAndStride() function to compute layout + alignment. Cleans up constructor logic.
Foundation for v1.0 Prepares BufferWrap for pluggable strategies: ArrayBuffer, GPUMemory, AudioBuffer, SharedMemory, etc.

v0.9.0: Getting close to v1.0.0

Choose a tag to compare

@Jumballaya Jumballaya released this 31 Mar 19:54

A lot was added:

the following methods:

slice: creates a new BufferWrap that is a slice of the parent BufferWrap
move: moves a struct from one location into another
insert: insert a struct or an entire BufferWrap at an index
copyInto: copies the data from the BufferWrap to an ArrayBuffer or another BufferWrap
iterate: creates a generator that iterates through the structs
attributeStride: returns the byte size of a specific attribute

The following attributes:

byteLength: get the length of the underlying DataView
stride: get the stride of the struct

First Release

Choose a tag to compare

@Jumballaya Jumballaya released this 20 Feb 23:40

First Release, it is published on NPM. I will take some time and use it in a few projects to see what more I need to do with it