This project uses semantic versioning.
This is a rewrite.
- Added
pass
anddrop
functions to middleware. This lets you drop data going through middleware explicitly
- Added support for using BridgeNet2 in parallel
- Added
ServerBridge:Fire(player)
,ServerBridge:FireAll()
,ServerBridge:FireAllExcept
,ServerBridge:FireGroup
- Added an invocation queue. This should help with some loading order issues and just fix some edge cases
- Added a cap of 255 identifiers. This is because if you go over that, it would cause de-optimization
- Connections are now functions. Disconnect by calling the connection
- Instead of a custom signal implementation, luausignal is used. This should yield perf improvements
- Completely redid the backend using an improved format. Should see slightly better bandwidth and massively improved CPU usage
ServerBridge.OnServerInvoke = func
is nowServerBridge:OnInvoke(func)
- Enabled native codegen in a few places
- Codebase is now properly typechecked
- Redid logging & error messages
- No longer using wally instance manager. Now using a reconciliation-based system (this should help w packages and parallel)
- Receive & send code is now completely shared
- Fixed players loading before initialization being bugged
- Fixed requiring "warmup"
- Removed Player containers
- Removed Connection class
- Removed
BridgeNet2.CreateUUID()
(just use httpservice tbh) - Removed rate limiting. It's better to have it implemented on the user side
- Removed
Bridge:Destroy()
. This did not work anyways - Removed
BridgeNet2.HandleInvalidPlayer
. It's dangerous and shouldn't actually be used to ban players
- Casing is now consistent: Everything internal is now camelCase, everything external is now PascalCase
- Introduced automated testing
- Switched to string requires using darklua
- Switched to Luau syntax highlighting
- Switched line endings from
crlf
tolf
- Replaced JavaScript tooling with Lune tooling
version 1.0.0: 10/20/2023
- Added an easy way to type payloads using generics. This will be elaborated on in documentation later
- Fixed sending singular nil values with nothing else in the frame
- Fixed a bug w/ the loading queue. Finally got around to that (#35)
- Type improvements
- Added unique IDs to the invoke functionality. Should fix a multitude of bugs.
- Re-did rate limiting. I'm confident that it's stable.
version 0.5.6: 9/25/2023
- Now uses a system to manage package version control w/ instances. This ensures that even if you're running 2 separate versions of BridgeNet2, it will communicate correctly, and everything will work as expected.
version 0.5.5: 8/26/2023
- All coroutine.resume instances have been replaced with task.spawn. This fixes a lot of obscure bugs.
version 0.5.4: 8/19/2023
- You can now name connections, which will show up in logging and in the microprofiler.
- Calling script and line are now shown for connections and firing bridges
- Type improvements
version 0.5.3: 7/31/2023
- A mock API for when BridgeNet2 is ran in edit mode. Limitations: InvokeServerAsync will infinitely yield, connections will never run.
- BridgeNet2 nows prints the current version upon being loaded
- Improved output readability
- Potentially breaking: Bridges now are cached- this means you will have the same bridge object across scripts. This should be more expected behavior, and should overall be an improvement.
- Potentially fixed some issues with loading and identifiers?
- Fixed a bug where referencing a bridge multiple times clearing connections each time (Except on the client this time)
version 0.5.2: 7/15/2023
- PlayerContainers now error if an incorrect amount of arguments is passed
- Fixed a bug where referencing a bridge multiple times clearing connections each time
- Fixed a bug where the player loading before BridgeNet2 starts would never initialize the player
version 0.5.0: 6/21/2023
- Added
ServerBridge.OnServerInvoke
andClientBridge:InvokeServer()
- Added
.Connected
to connections
- Fixed a bug with
Bridge:Wait
- Refactored the object-oriented programming pattern used w/ Bridges
- Connections are now their own class
- Calling methods with
.
instead of:
will now error - Type improvements
tostring()
-ing a bridge will now return its class type
version 0.4.1: 6/11/2023
- Fixed some behavior w/ nil values
version 0.4.0: 6/10/2023
- Added
BridgeNet2.ServerBridge
andBridgeNet2.ClientBridge
constructors- they are identical to ReferenceBridge, just with better types. The current ReferenceBridge will not be deprecated or affected by this. - Instead of being limited to tables, you can now pass any type into :Fire(). This means you can finally pass in nil values to :Fire() too.
- Fixed rate limiting
- Re-added methods on the
Bridge
type to types
- Added
Connection
type toBridge:Connect()
functions RateLimitActive
is now a public boolean that can be set by the user- Improved error messages
- Improved logger readability.
- I made a script to automate releases- there should hopefully be less inconsistencies with releases from now on.
version 0.3.0: 6/8/2023
- Added Hoarcekat support
- NumberToBestForm removed (feature bloat)
- StartLogging and StopLogging have been removed in favor of
object.Logging =
- Literally dozens of bugfixes
- Massive internal re-structuring
- Renamed
FromIdentifier
andFromCompressed
toSerialize
andDeserialize
- Internally commented the entire project
- Removed SetSecurity and SecurityEnums in favor of
HandleInvalidPlayer
- Type improvements
- Logging now displays the packet size in bytes (using @PysephWasntAvailable's RemotePacketSizeCounter package)
- Compliant with strict Luau typing
- Hotfix
version 0.2.1: 6/3/2023
- Added :Once() and :Wait() to ClientBridge
- Fixed a bug w/ :Wait() on ClientBridge
- Default format/type security errors no longer throw
version 0.2.0: 5/11/2023
- Added :Once()
- Added :Wait()
- Added :StartLogging() and :StopLogging()
- Added :Disconnect() to connections
- Removed .Hook()
- Added single-player targeting
- "Silent" logs will display only in studio
version 0.1.0: 2/19/2023
- Release