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

Maybe an update notifier? In case for example, I am using an old version of FastNet, it would notify me that theres a new update. Would be cool to see!

1 Like

That need use loadstring for checking global version

1 Like

just made it on Version 2.9.8b with autoUpdate feature

Update | v2.9.8 | Beta


  • Added UpdateChecker
  • Added AutoUpdater (defaultly disabled, enable it on settings)
  • Added Build Version
  • Added :GetBuild()

Get Build Version Module (number)

  • Added :Flood() on :Listen & :WaitForListen (Server only, default: disable)

Flood(enable : boolean, max : number, reset : number, global : boolean)
If global off use per player

Remote:Listen(function(...)
end):Flood(true, 50, 0.1)
  • Minor Improvements

Note:

Flood likely anti spam remoteevent and almost like :AddLimit / :AddLimitAll but it different because AddLimit only limit when player going to fire

UpdateChecker & AutoUpdate Feature only works on ver 2.9.8 or higher


Download Here
FastNet.rbxm (38.0 KB)

Add :WaitForRemote() it will wait until the remote exist otherwise calling :Get on the client may return to nil before the server created the remote

Minor update on v2.9.8 Beta (b_2980 -> b_2982)


  • Added Thread Reuse on Client (Tested benchmark doesnt improve much like only 3-10%)
  • Improved UpdateChecker
  • Minor improvements

Note: I suggestly replace this to your v2.9.8 build_2980 to this update

Download
FastNet.rbxm (38.2 KB)

Its also available on roblox library for b_2982

Forgot to say, the guide is updated right now.

I will be working on FastNet with roblox-ts version, but the begining first (ver0.1.0-alpha)

EDIT: damnly hard for unavailable roblox libraries

Changelogs (b_2984/2.9.8 Beta)


  • Fix Invokes return nil
  • Minor fix on updater
  • Other Minor fix

Download Here
FastNet.rbxm (38.2 KB)

Pros on FastNet:

  • More secured with AES (very hidded secret key, optional on settings)
  • Encoded data packets (automaticly decoded when receives)
  • Low bandwidth usages (Highly compressed, the smallest is 2 bytes)
  • Custom RateLimit to Player
  • Stabled Efficiency & Optimized
  • Faster
  • Thread Reuse (Client)
  • RateLimits & Queues System
  • Debugging (optional)
  • Traffic Logs
  • Fire back after receive (optional, likely RemoteFunction)
  • Easy to use
  • Custom Timeout system (yielded) on RemoteFunction
  • Anti-Spam on Remotes Receiver (optional)

Cons on FastNet:

  • Disable RateLimiting & Queue make unstablled or very-high/massive limition size
  • AES Encryption is slow when handling alots data to encrypted
  • AddLimit / AddLimitAll may extra performance taken
  • AES Encryption System enabled requires extra performance for secure their keys
  • Easily RateLimit handler outdated (not at all)

Note: For version 2.9.x

Patch Update - v2.9.8 Beta [b_2985]


  • Improved Locking Frames (max is 60) on rateLimit & Queue System
  • Improved Queue handler (more efficiency & lower Latency/Ping ms)
  • Client <-> Server Better Effiency & more stable latency
  • Fixed :WaitForListen & :Listen for Server side (missing player instance fixed)
  • When Queue reach limit will no longer drop the queues just reject next queue request if it still on the limit
  • Thread Reuse now also on rateLimit system (Client & Server)

Download here
FastNet.rbxm (38.8 KB)

New Update | v2.9.8 - Beta/PreRelease (b_2987)


  • Alot more Efficiency & Lower Latency
  • Major Fixes, Improved & Optimized overall
  • Added BYTE Packet Size on Traffic Logs (B/KB/MB)
  • Added _packet Module for BYTE Packet Size Reader (Credit: @Pyseph)
  • Improved Frame Locking
  • Multiple Frame uses on FastNet
  • Frame Lock is able to customized now on Settings
  • Some Changes on default FastNet Settings
  • Faster (lowest latency hits 29-30ms, avg was ~34-41ms tested & benchmarked)
  • Improved Queue System (Client & RateLimit)
  • Added FastNet:ClearQueue()

Clear all current tasks/queues exists (include clear rateLimit)

  • Added WaitFor Method on :Get

:Get(RemoteName: string, WaitFor: boolean, Timeout: number)
local x = FastNet:Get(“Remote1”, true) – if timeout not filled it will set into 0.1s
WaitFor its for Wait until the RemoteIsExists

  • Minor Improve on Debug
  • Removed "print"s (sorry forgot to remove it)
  • More Stabled
  • Other Minor Fixes & Changes

Download here
FastNet.rbxm (41.8 KB)
Github

This is most stabled version, there will be no v3.0-alpha/beta/pre-release/release, FastNet will be way longer get updates since im taking a break because i have been alot of grinding to this source for updates faster and i already out of idea for next updates

there will be no v3.0-alpha/beta/pre-release/release, FastNet will be way longer get updates since im taking a break because i have been alot of grinding to this source for updates faster and i already out of idea for next updates


Thanks, i appreciate you all!

Replace update to b_2987.
##chrzzz30

Minor Update | v2.9.8 | Beta | Build_2988


  • Removed AutoUpdate on FastNet

Only UpdateChecker Feature still stay on FastNet

  • Parellel on FastNet Handler! (Client, Server & RateLimit/Queue Handler)

So every frames in Handler on FastNet now its on Parallel (Multi-threaded)
Also Parellel is not implemented in Compress Module because useless

  • require(idFastnet) doesnt support anymore due some changes on FastNet
  • FastNet Module parented on “Actor” named FastNet so its will be working property (this why it doesnt support require(id))

So if you want use this module you can follow this

local FastNet = require(ReplicatedStorage:WaitForChild("FastNet"):WaitForChild("MainModule")

-- now you can use FastNet!
  • Removed debug profilers (due parellel actived)

This is faster & more efficience on latency than BridgeNet-v2.0rc4 on benchmarks result

Download
FastNet.rbxm (46.7 KB)

Recomanded using :Flood on Remote Receive Listener like this

Remote:Listen(function(plr, any)
end):Flood(true, …)

For more efficience and less server workloads taken and this help your Remote Listener to prevent receiving a bunch/brute from a client like spamming remotes and make a overhead

InvokeServer & InvokeClient throw an error when the player left while it’s being invoked so I made a temporary fix:

image

1 Like

Update | v2.9.8 (Beta) | b_2989


  • Improved Queue System (Server & Client)
  • Improved & Minor Fix Listener Connections
  • Improved & Fixed Invokes
  • Minor change

Download here:
FastNet.rbxm (46.1 KB)
[updated for hot fix]

So why would I choose FastNet over Bridgenet?

I already wrote it before on top, scroll up