Node.js allows the creation of Web servers and networking tools using JavaScript and a collection of "modules" that handle various core functionalities.[28] [31][44] [45][46] Modules are provided for file system I/O, networking (DNS, HTTP, TCP, TLS/SSL, or UDP), binarydata (buffers), cryptography functions, data streams, and other core functions.[31] [45][47] Node.js's modules use an API designed to reduce the complexity of writing server applications.[31] [45]