FastNet - a Fast, low-latency, efficience, low bandwidth usages & high-performance | Now with AES-128 bit for Security

Okay so you fireall in server but the server created first then player loaded their guis & scripts in gui

I think this problem on encoding data

The update will be released tmr

Not trying to be rude, but is there any real reason to use this over BridgeNet?

Very cool module. However doing so much work and than flat out discontinuing it later temporary will kinda make this module pointless.

What if there are bugs?
What if there is an major one even?
What if it stops working due to an Roblox Update? (Highly unlikely but still.)
What if an method that the module uses is deprecated by Roblox?

I said already before i discontinue for while doesnt mean forever

Capture

1 Like
  • More secured with AES (very hidded secret key, optional on settings)
  • Low bandwidth usages (Highly compressed, the smallest is 2 bytes)
  • Custom RateLimit to Player

Pretty sure there won’t be lower bandwidth and encryption probably won’t help.

Encrypting with AES only for higher secure its optional (defaultly are disabled, that mean you can enable it manual on inside module settings

Update v2.9.5 - Patch 1 | Beta


  • Added back base64 encode/decode with optimized & better version (dont run when EnchantSecurity enabled)
  • Fixed Listen & WaitForListen
  • Changed :CreateRemote to :Create

Download here (v2.9.5p1-Beta)
FastNet.rbxm (34.7 KB)

1 Like

Sure, it’s optional but doesn’t do anything really. I was more asking how this compares speed wise to BridgeNet.

Update v2.9.6 release in 1 or 2 days, (bug fix & some new feature)

1 Like

APIs & GUIDES is kinda outdated

1 Like

Update | v2.9.6 | Beta


  • Fixed WaitForListen & Listen (On RemoteFunctions)
  • Added :Connected(message)
local x = FastNet:Get("Remote1")
x:Listen(function(x)
end):Connected("Remote1 Connected!")

remember this :Connected(x) function only works on non-invokes remote (like RemoteFunction)

  • Added :Retry(keepRetry : boolean)
local x = FastNet:Get("Remote1")
x:Listen(function(x)
end):Connected("Remote1 Connected!"):Retry(true) -- will keep retry to connect, for just once retry make it false

this :Retry doesnt support invokes remote & WaitForListen that mean only for RemoteEvent & :Listen

  • Firing Remote Task now bit quicker to finish
  • Other maybe i forgot

Download here (v2.9.6 Beta)
FastNet.rbxm (35.5 KB)

The previous issue is still here

-- SERVER
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local FastNet = require(ReplicatedStorage.FastNet)

if not FastNet:IsExist("DefaultServerSoundEvent") then
	FastNet:Create("RemoteEvent", "DefaultServerSoundEvent")
end
task.wait(5)
print("AAAAAAAA") -- Print the remote has already fired
FastNet:FireAll("DefaultServerSoundEvent")
-- CLIENT
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")

local FastNet = require(ReplicatedStorage.FastNet)

FastNet:Get("DefaultServerSoundEvent"):WaitForListen(0, function(...)
	print("A")
end):Connected("Co")

image

1 Like

firing without args doesnt support for all version FastNet but i will make it supported next version and a new feature, im making it rn v2.9.7 Beta

Update | v2.9.7 | Beta


  • Firing without args now supported
  • Added :Return on :WaitForListen & :Listen (not support for server & remotefunctions, only for Client and RemoteEvents)
-- SERVER
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")

local FastNet = require(ReplicatedStorage.FastNet)

if not FastNet:IsExist("DefaultServerSoundEvent") then
	FastNet = FastNet:Create("RemoteEvent", "DefaultServerSoundEvent")
end
FastNet:Listen(function(...)
	print("F")
end):Connected("E")
task.wait(12)
repeat task.wait() until #Players:GetPlayers() > 0
print("AAAAAAAA") -- Print the remote has already fired
FastNet:FireAll("DefaultServerSoundEvent")
-- CLIENT
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")

local FastNet = require(ReplicatedStorage.FastNet)

FastNet:Get("DefaultServerSoundEvent"):WaitForListen(0, function(...)
	print("A")
	for i=1,3 do
		task.wait(0.5)
	end
	print("p")
end):Connected("Co"):Return() -- return fire to server with no args as finished

Your also can do :WaitForListen(0, func() end):Return(any), return uses remoteevent to server return function only fire when above task done

  • Minor Improvement

Download here (v2.9.7-Beta)
FastNet.rbxm (36.7 KB)

Adding :Return() is kinda like a good idea to use it over InvokeClient because RemoteFunction is slower than RemoteEvent

1 Like

any suggestions/feedbacks/ideas for next updates?