BridgeNet2, v1.0.0 | A blazing fast networking library for Roblox

Hey so this module doesn’t wrap remote functions right? The creator should consider doing that…

It is. Here is example.

-- Server
local BridgeNet2 = require(<bridgenet path here>)
local Bridge = BridgeNet2.ServerBridge("Bridge")

Bridge.OnServerInvoke = function(player: Player, content: any)
  return true
end
-- Client
local BridgeNet2 = require(<bridgenet path here>)
local Bridge = BridgeNet2.ClientBridge("Bridge")

Bridge:InvokeServerAsync(true) -- single argument
Bridge:InvokeServerAsync({true, false}) -- multi argument
2 Likes

so what this module does a overall summary is that it optimizes remote events by converting all arguments to strings because they cost less ? it also instantly disconnects connected RBXScriptSignals after using making it quite hard for Hackers to crash servers?

it has a rate limiter and also a data packets limiter ?

down side is that it can severely cause delays between client and server if there is Lots of firing of the same event ?

correct me if i am wrong please i am just trying to wrap my head around what this does

Thanks the docs didn’t mention anything about this!

YAY FINALLY RELEASED, Important question does bridgenet 2 have any remotefunction functionality to it?

Nvm scrolled up and found the answer

What about adding support for Axen’s compression module? I tested BridgeNet2 and the compression module together and it seems like receive have reduced for 2 times: 5.93 → 2.88 KB/s.

For example you can add method :ReferenceCompressionBridge() which will make bridge that is specially used for compression requests. Yes, some time will be spent for compression before actual request sending, but why not if it reduces receive so hard.

3 Likes

bn2 batches remote calls together if they were sent in a frame, and wym disconnect connected rxsignals
and i dont think theres a noticeable delay

You may have not considered it yet because up till this point it’s only been teased, which is expected, it’s very very new and I would imagine it will take some time to develop a consensus on it.

That said, as of just a moment ago Unreliable Events were released. The first thing that came to mind is BridgeNet as I actively utilize this in my current projects. Do you plan on integrating Unreliable Events into your system in a future update? I believe it could be very advantageous for certain use cases and would love to see it.

4 Likes

Will BridgeNet2 support unreliable remote events in the future?

2 Likes

Can’t wait for BridgeNet to support Unreliable Events (Hopefully)

On a separate note…

Heres a quick function I made to be able to delete Identfiers:
(I wasn’t too sure how Identifiers worked, but I think this will correctly remove them, I tried to cover every basis)

-- In 'src'

RemoveIdentifier = if isServer then Server.removeIdentifier else nil,

-- In "Server"

function Server.removeIdentifier(name: string)
	return ServerIdentifiers.remove(name)
end

-- In "ServerIdentifiers"


function ServerIdentifiers.remove(identifierName: Types.Identifier)

	if fullIdentifierMap[identifierName] ~= nil then

		identifierCount -= 1
		identifierStorage:SetAttribute(identifierName, nil)

		fullIdentifierMap[identifierName] = nil

		for Name: string, Id: string in pairs(compressedIdentifierMap) do

			if Id == identifierName then 

				identifierStorage:SetAttribute(compressedIdentifierMap[Name], nil)

				compressedIdentifierMap[Name] = nil


			end
		end

	elseif compressedIdentifierMap[identifierName] ~= nil then

		local IdentifierName = compressedIdentifierMap[identifierName]

		identifierCount -= 1

		identifierStorage:SetAttribute(identifierName, nil)
		identifierStorage:SetAttribute(IdentifierName, nil)

		fullIdentifierMap[identifierName] = nil
		fullIdentifierMap[IdentifierName] = nil

		compressedIdentifierMap[identifierName] = nil

	else

		Output.warn('No Identifier exists with that string when trying to remove')

	end

end

I’ve got plans for that dw, I’ve started development but I need buffers to release first

10 Likes

Do you think you could add this in your next update?

And maybe a setting to toggle off all output logs?

When approximately are you planning on releasing this? Since i was on releasing the new update with UmreliableRemoteEvents along with my christmas update.

1 Like

What are bytes? I’ve seen a class called that before but I’ve never known what it does. What are packets? And what is the RemoteEvent throttle limit?

I’m just getting in to the nitty-gritty of networking. That being said, wouldn’t setting Roblox’s Signal Behavior to Deferred essentially do the same batching that this library does?

can you update the documentation and make the tutorial more clear, when i try to call FireTo it doesn’t show and I’ve required the module properly.

@ffrostfall Bro you need to cook on the next bridgenet2 update for unreliable events, or else FastNet is gonna continue cooking with no competition.

1 Like

i for some reasons get better performance with… normal remotes?

Are you testing it correctly? You really shouldn’t be getting better performance with normal remotes.

1 Like

idk i used the same datas with remotes and bridgenet2

i was sending it every frame, with remotes 5.5recv while with bridgenet2 i had 7 recv