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

oh my bad i forgot something on :Listen like a stuff missing on it

hey did u get this error on :Get?

No I haven’t 30303030 characters

can u retry it again i updated the download link, and let me know

It does work like I said so thank you :+1:

1 Like

Any plan to support non string argument?

-- SERVER
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Network = require(ReplicatedStorage:WaitForChild("Network"))

Network:CreateRemote("RemoteEvent", "Remote")

while task.wait() do
	task.spawn(function()
		Network:FireAllClients("Remote", false, true)
	end)
end

-- CLIENT
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Network = require(ReplicatedStorage:WaitForChild("Network"))

Network:Get("Remote"):Listen(function(...)
	print(...) -- print nil
end)
1 Like

Update Fixes v2.9.3:

  • Added type/typeof data whitelist checking (boolean, table, function, userdata, thread & Instance, so now you can send a non-string arg)
  • Fixed InvokeClient issue

Known issue:

  • First arg received skipped to decrypt (only on RemoteFunction)

Download here
FastNet.rbxm (24.4 KB)

damn it doesn’t support Instance, Vector3 & more

1 Like

I need to know Vector3, CFrame and etc the type data

i updated the download link so it should fully support with any args type now, if there any issue please report it i will look on it and try to fix.

At the line 334 I notice that :FireServer() doesn’t Fire multiple args
image

1 Like

oh sorry you can change the data_send : any to … i will update the download link let me open rblx studio

EDIT: i updated it

Update v2.9.4 - Beta


  • Removed base64 (standard security)
  • Added new option on settings (EnchantSecurity : boolean, defaultly off)
  • EnchantSecurity Feature a Advanced Encryption for Security (AES-128 CBC, with secret_key autogenerated with up/low case alphabet, numbers & symbols which server & all clients have same secret_key and only generated once)

Note for using EnchantSecurity:
Performance may decreased so i recomanded to off it if you dont need some security and more performance
Why i use CBC cipher-mode? because it fast enough than others to encrypt & decrypt on newest/good processors and high-security
Why AES-128 bit? i want the encryption & decryption faster to finish the task


Known issue:

  • First arg received skipped to decrypt (only on RemoteFunction)
  • some received arg still on table packet (you may need to table.unpack if it still on table)
  • outdated rateLimit Handler

Short test on EnchantSecurity
to_encrypt = "I'm FastNet!, Hello!"

av.time result:
took ~0.026-0.033s to encrypt for once
took ~0.029-0.055s to decrypt for once
using os.clock()

below 0.1s seems fast but i would say it slow, because i tested it on spam multiple fire remote, i tried to optimize it but i only can reach 0.015s for the fastest, below 0.001s would be fast


Download here
FastNet.rbxm (33.6 KB)


I’m planning next update will fix rateLimit handler outdated and i think FastNet no longer will be updated anymore after few update/ver2.9.5 or ver2.9.6

3 Likes

Do you mean that FastNet will be discontinued or that you will lower on update frequency?

Releasing an update every 15-30 days would be more ideal than less than 3 days (so you have time for bugfixing and other priorities, and developers don’t have to change the module every day).

1 Like

discontinued for while i think, idk when i will continue it again whenever

Can you change the GitHub repo to include the project tree instead of a rbxm file? Mobile users won’t be able to read the source code.

Update | v2.9.5 | Beta


  • Optimized AES (EnchantSecurity)
  • Fixed AddLimit & AddLimitAll return false
  • Few Changes on API
  • :FireServer/FireClient to :Fire
  • :FireAllClients to :FireAll
  • :InvokeServer/InvokeClient to :Invoke
  • Queue system auto disabled when EnchantSecurity enabled for less hard workload, but RateLimit still enabled (Stability set for EnchantSecurity)
  • Other optimizes & changes
  • Removed few unused codes
  • (Other maybe i forgot)

Download here
FastNet.rbxm (33.5 KB)

this module in the Roblox Library is outdated

EDIT: :Listen() still broken on the client

Any suggestion/feedbacks For next updates?

well yes

-- Sever
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Network = require(ReplicatedStorage:WaitForChild("Network"))

Network:CreateRemote("RemoteEvent", "Remote1")
Network:FireAll("Remote1", {"Hello!"})
-- Client
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Network = require(ReplicatedStorage:WaitForChild("Network"))

Network:Get("Remote1"):Listen(function(player, data_receive)
	print(player, data_receive) -- IT DOESNT PRINT
end)