1.7.0
- Adds
Knit.GetServices()function server-side - Adds
Knit.GetControllers()function client-side - Freezes
services/controllerstables so that they can be safely returned in the functions listed above. - Various code readability adjustments
- Update GitHub workflow dependencies
- Add documentation on intellisense
1.6.0
- Add support for UnreliableRemoteEvents (using
Knit.CreateUnreliableSignal()on server) - Update dependencies
1.5.3
- Fix incorrect RunService call
1.5.2
- Update dependencies
- Prevent KnitServer from destroying itself in edit mode
1.5.1
- Bugfix for main Knit init file
1.5.0
- Code styling
- Utilize newer Luau features
- Migrate to Aftman
- General repository cleanup
- Update dependencies
1.4.7
- Update dependencies for bundled version of Knit
1.4.6
- Update Comm dependency with new methods
- Update TableUtil (in bundled version) to use
table.cloneinternally where appropriate
1.4.5
- Update dependencies
- Use Promise v4
1.4.4
- Add memory categories per service and controller to help track memory usage
- Update dependencies
1.4.3
- Update Component dependency
- Update Input dependency
- Update Signal dependency
- Update Timer dependency
- Update Trove dependency
1.4.2
- Update dependencies to latest
1.4.1
- Update the Comm module to patch a middleware bug only affecting middleware that tries to change number of arguments (i.e. injecting custom arguments will now be fixed)
- Documentation improvements
1.4.0
- Add ability to set independent middleware per service, but on the server and the client
- Added tutorial video links
- Add short-circuit evaluation to
GetServiceandGetControllerfunctions for better performance when the service/controller exists - Change Comm module to use service name as namespace instead of nested
__comm__folder - Documentation improvements
- Breaking changes to middleware assignment (now within one
Middlewaretable instead of two for inbound/outbound)
1.3.0
- Add support for RemoteProperties via Comm library
1.2.1
- Add updated dependencies to the
wally_bundle.tomldependency list
1.2.0
- Added options to include middleware
1.1.0-rc.2
- Removed
ServicesandControllersproperties to force use ofGetServiceandGetControllerfunctions - Add
KnitOptionsargument for KnitClient to toggle whether service methods simply yield or return promises (promises by default) - Various documentation improvements
1.1.0-rc.1
- Migrated all core modules to Wally
- Revamped documentation
0.0.22-alpha
- Fix
TableUtil.Samplealgorithm to properly implement a partial Fisher-Yates shuffle - Fix
TableUtil.Reduceto handle theinitparameter properly - Update Janitor to v1.13.6
- Small documentation adjustments
0.0.21-alpha
- Fix issue with having multiple required components
- Adds
SampleandZipto TableUtil - Improvements to Timer module
0.0.20-alpha
- Fixes bug with Timer class
- Updates Janitor
- Removes unnecessary parentheses
- Adds some more Luau types
0.0.19-alpha
- New Signal implementation
- Remove Thread module in favor of new
task.spawnandtask.deferfunctions - Add Janitor / Remove Maid
- Add Timer module
0.0.18-alpha
Components
- Added optional
RequiredComponentstable for components - Added
Observemethod for components - Fixed
AddedandRemovedevents not being cleaned up when component class destroyed - Fixed lifecycle RunService method bindings not being cleaned up properly for future reuse
Documentation
- Added more documentation for components
Stability
- Upgraded CI/CD pipeline to use latest packages
0.0.17-alpha
- Hotfix for TableUtil
Sync,Assign,Extend, andShufflefunctions to do shallow copies instead of deep copies - Fix release GitHub action to properly use
"Knit"as the top-level directory name within the zipped file - Fix documentation to properly use user preference theme (light/dark)
0.0.16-alpha
[BR] = Breaking Change
- Project directory restructure
- Can now include Knit as a Git submodule and reference the default rojo project to sync in (see below)
- Added unit tests for Knit-specific utility modules
- Added simple integration tests
- TableUtil fixes, additions, and improvements:
- [BR] All functions (except
FastRemoveandFastRemoveFirstValue) no longer mutate table - Fix
Filterbug introduced in v0.0.15-alpha - Fix behavior of
Extendto extend arrays and not dictionaries (useAssignto extend a dictionary) - Add optional RNG override parameter for
Shuffle - Add
Flat,FlatMap,Keys,Find,Every, andSomefunctions - Add documentation page for TableUtil
- [BR] All functions (except
- Simplify
Knit.OnStart()internally to usePromise.FromEvent - Update Rojo version used by CI/CD pipeline
- Fix broken links in documentation pages
0.0.15-alpha
- Memory leak fixed with Streamable when instance was immediately available
Knit.GetService(serviceName)added to server-side Knit- Minor improvements to TableUtil
- Util documentation split across multiple pages
0.0.14-alpha
- Fix Signal leak when firing with no connections
- Change
._instanceto.Instancein Component - Components will use attributes to store unique ID instead of StringValue
- Add
Signal.Proxyconstructor to wrap built-in RBXScriptSignals - Add
Maid:GivePromisemethod - Allow dictionary tables in
StreamableUtil.Compoundobservers list
Note breaking changes from above:
- When upgrading, make sure to change
._instancefield accessors to.Instancefor components ServerIDStringValue for components has been switched to use attributes:instance:GetAttribute("ComponentServerId")
0.0.13-alpha
Component:WaitForhas been rewritten to utilize built-in promise features better, which also eliminated an existing event connection leak.StreamableandStreamableUtilmodules added to easily manage parts that may stream in & out during runtime when usingStreamingEnabled.- Documentation improvements.
0.0.12-alpha
- Added new 'Add' functions to automatically load all modules in a folder. This is useful for quickly loading a bunch of service or controller modules:
KnitServer.AddServices(folder: Instance)KnitServer.AddServicesDeep(folder: Instance)KnitClient.AddControllers(folder: Instance)KnitClient.AddControllersDeep(folder: Instance)
- Split up remotes to server/client versions:
RemoteEvent->RemoteSignalandClientRemoteSignalRemoteProperty->RemotePropertyandClientRemoteProperty
- Knit module isn't required to live in ReplicatedStorage now
- Added
EnumListclass which wrapsSymbols to create pseudo-enums - Added style guide in documentation
0.0.11-alpha
- Documentation fixes and additions
- Better table support for
RemotePropertyclass - Fixes and additions to
Optionclass - Optional behavior argument for
Thread.DelayRepeat- Note: If using var-args list for
DelayRepeat, this is a breaking change.DelayRepeat's third argument must be the behavior (Thread.DelayRepeatBehavior.DelayedorThread.DelayRepeatBehavior.Immediate).
- Note: If using var-args list for
- Added
Symbolclass
0.0.10-alpha
- Switch default branch from
mastertomain Component:WaitForfirst arg can now be a name or instanceInitfor individual components is called after a heartbeat, which helps allow components to get other components without race conditions whenComponent.Autois used.
0.0.9-alpha
- Fixed issue where remote objects were parented before services completed initialization. This created a possible race condition between services initializing and clients loading Knit.
0.0.8-alpha
- Added
Optionclass for creating optionals. - Added serialization/deserialization automatic flow for RemoteEvents and RemoteFunctions.
- Upgraded
Promiseto v3.0.1.
0.0.7-alpha
- Added a few tests (very few so far)
- Added PascalCase methods to Promise module
- Components will only trigger for instances that are descendants of Players or Workspace by default
- GitHub workflow to auto-publish the Knit module to Roblox.
0.0.6-alpha
- Add more functionality to Component module
0.0.5-alpha
- Added Component class, which allows developers to bind component classes to in-game instances using the CollectionService tags
- Renamed
EventtoSignal
0.0.4-alpha
- Ability to use tables within RemoteProperty object
- RemoteProperty now has
property:Replicate()method server-side that must be called when a table value is changed (see doc)
0.0.3-alpha
- Add more documentation
- Inject
Playerfield intoKnitClient
0.0.2-alpha
- Add
Knit.OnStart()to capture when Knit starts - Add RemoteEvent and RemoteProperty
- Add documentation
0.0.1-alpha
- Initial release