Skip to main content

Network API

Handles Networking related operations.

network.disableRateLimit

Signatures

disableRateLimit(opts \ [])

Description

Disable network rate limiting.

Removes any active bandwidth restrictions and returns network to full speed.

Options

  • delay - Delay in milliseconds before disabling rate limiting (default: 0)

Example

-- Disable rate limiting immediately
network.disableRateLimit()

-- Disable rate limiting after 1 second
network.disableRateLimit({delay = 1000})

network.enableRateLimit

Signatures

enableRateLimit(limit_down_mbit)

enableRateLimit(limit_down_mbit, limit_up_mbit)

enableRateLimit(limit_down_mbit, limit_up_mbit, opts)

Description

Enable network rate limiting with download speed limit only.

Restricts the download bandwidth to the specified limit. Upload bandwidth remains unlimited.

Parameters

  • limit_down_mbit - Download speed limit in megabits per second

Example

-- Limit download to 10 Mbps
network.enableRateLimit(10)

network.enableRateLimit

Signatures

enableRateLimit(limit_down_mbit)

enableRateLimit(limit_down_mbit, limit_up_mbit)

enableRateLimit(limit_down_mbit, limit_up_mbit, opts)

Description

Enable network rate limiting with both download and upload speed limits.

Restricts both download and upload bandwidth to the specified limits.

Parameters

  • limit_down_mbit - Download speed limit in megabits per second
  • limit_up_mbit - Upload speed limit in megabits per second

Example

-- Limit download to 10 Mbps and upload to 5 Mbps
network.enableRateLimit(10, 5)

network.enableRateLimit

Signatures

enableRateLimit(limit_down_mbit)

enableRateLimit(limit_down_mbit, limit_up_mbit)

enableRateLimit(limit_down_mbit, limit_up_mbit, opts)

Description

Enable network rate limiting with download, upload limits and additional options.

Restricts both download and upload bandwidth with support for delayed activation.

Parameters

  • limit_down_mbit - Download speed limit in megabits per second
  • limit_up_mbit - Upload speed limit in megabits per second
  • opts - Options table

Options

  • delay - Delay in milliseconds before enabling rate limiting (default: 0)

Example

-- Enable rate limiting after 2 seconds
network.enableRateLimit(10, 5, {delay = 2000})

network.isRateLimitActive

Signatures

isRateLimitActive()

Description

Check if network rate limiting is currently active.

Returns the current status of network rate limiting.

Returns true if rate limiting is enabled, false otherwise.

Example

local is_limited = network.isRateLimitActive()

if is_limited then
print("Network rate limiting is currently active")
else
print("Network is running at full speed")
end

network.request

Signatures

request(url, opts \ [])

Description

Makes an HTTP request and returns the response.

Options

  • method: HTTP method (e.g., "GET", "POST", "PUT", "DELETE")
  • headers: A table of HTTP headers
  • body: The request body (for POST, PUT, etc.). Maximum size is 10 MB.
  • auth: Authentication method and credentials
  • params: Query parameters
  • timeout: Request timeout in milliseconds

Returns a table with:

  • status: HTTP status code
  • body: Response body (decoded)
  • error: Error message (if any)

Example

local response = network.request("https://api.example.com/data", {
method = "GET",
headers = {["Content-Type"] = "application/json"},
auth = {type = "bearer", token = "my-token"},
params = {limit = 10, offset = 0}
})

Only supports json at the moment

network.stats

Signatures

stats()

Description

Get network interface statistics.

Returns detailed network statistics including bytes transferred, packets, errors, and other network metrics.

Returns a table containing network statistics with the following fields:

  • rx_bytes - Bytes received
  • tx_bytes - Bytes transmitted
  • rx_packets - Packets received
  • tx_packets - Packets transmitted
  • rx_errors - Receive errors
  • tx_errors - Transmit errors
  • rx_dropped - Dropped received packets
  • tx_dropped - Dropped transmitted packets
  • multicast - Multicast packets
  • collisions - Network collisions

Example

local stats = network.stats()

for i, stat_table in ipairs(stats) do
for j, stat in ipairs(stat_table) do
local name, value = stat[1], stat[2]
print(name .. ": " .. value)
end
end