toobs
A network speed testing tool for NodeJS.
Still in development, use at your own peril
Install
npm install toobs
Usage
Server Side
var toobs = ; var server = ; server;
Client Side
var toobs = ; var client = host: '192.168.1.14' ; client; client; client; client;
bits
vs. Bytes
Socket
s record values in Bytes so I convert them to bits by multiplying by 8. Also, below is a table showing the conversions performed to translate human-readable sizes to Buffer()
values:
var BYTES = b: 0125 bit: 0125 kb: 128 kbit: 128 kilobit: 128 mb: 131072 mbit: 131072 megabit: 131072 gb: 134217728 gbit: 134217728 gigabit: 134217728 B: 1 Byte: 1 KB: 1024 KByte: 1024 KiloByte: 1024 MB: 1048576 MByte: 1048576 MegaByte: 1048576 // sorry, NodeJS can't handle GB buffer sizes
Toobs Tests
Toobs tests work by sending new Buffer()
data down a TCP socket. Node will dump the buffer straight to the kernel buffer so those rates are subject to interpretation.
Limitation - The highest size
or rate
value is 1023MB
, Node can't support buffer sizes higher than that.
Client.test(options)
The options
object can have the following properties:
- send
rate
/sec fortime
seconds
rate: '1gb' // string format: "{num}(b|kb|mb|gb|B|KB|MB)", max is "1023MB" time: 10 // number of seconds to run the test
- send
size
as fast as possible
size: '500mb' // send a 500mbit buffer, same format as .rate
Events
- Client
- Class
net.Socket
events test:sample
- Returns an object containing the details of the most recent sample of traffictest:start
- Emitted when a test is startedtest:done
- Emitted when a socket is closed
- Class
- Server
ToDo
- Add more test types (ramp, etc?)
- bump for Travis-CI