
در این بخش، به دنیای برنامهنویسی، الگوریتمها، شبکه و زیرساختهای فناوری میپردازیم
ماژول node:string_decoder در Node.js ابزاری برای تبدیل امن و دقیق دادههای باینری (Buffer) به رشتههاست، بهویژه زمانی که داده شامل کاراکترهای چندبایتی UTF‑8 یا UTF‑16 باشد. برخلاف buffer.toString() که ممکن است کاراکترهای ناقص را خراب کند، StringDecoder با نگهداشتن بایتهای ناقص در یک بافر داخلی، از تولید خروجیهای اشتباه جلوگیری میکند.
ماژول node:test یک فریمورک تست داخلی و مدرن در Node.js است که بدون نیاز به هیچ وابستگی خارجی، امکاناتی مانند تستهای همگام و ناهمگام، تستهای Promise و Callback، زیرتستها، هوکها، Mocking، Snapshot، پوشش کد، حالت Watch و گزارشگرهای سفارشی را ارائه میدهد. این ماژول پایدار، قدرتمند و مناسب پروژههای مدرن Node.js است.
ماژول node:tls پیادهسازی پروتکلهای TLS و SSL را در Node.js فراهم میکند. این ماژول بر پایهٔ OpenSSL ساخته شده و امکان ایجاد ارتباطات رمزنگاریشده، مدیریت گواهیها، احراز هویت، امنیت پیشرفته، و ویژگیهایی مانند ALPN، SNI، PSK، Session Resumption و کنترل Cipher Suite را ارائه میدهد. این ماژول برای ساخت سرورهای HTTPS، سرویسهای امن TCP، و هر نوع ارتباط رمزنگاریشده ضروری است.
ماژولهای node:trace_events و node:tty دو بخش مهم و تخصصی در Node.js هستند. Trace Events ابزاری قدرتمند برای جمعآوری دادههای عملکردی، رویدادهای V8، async_hooks، فایلسیستم، شبکه و سایر بخشهای داخلی Node.js است. این دادهها برای پروفایلینگ، دیباگینگ عمیق و تحلیل رفتار برنامه استفاده میشوند. TTY نیز امکان تعامل با ترمینال را فراهم میکند و برای ساخت ابزارهای CLI، مدیریت رنگها، اندازهٔ ترمینال، حالت raw و کنترل مکاننما کاربرد دارد. این مقاله هر دو ماژول را بهصورت کامل و ساختاریافته توضیح میدهد.
The node:dgram module provides a full implementation of UDP (User Datagram Protocol) sockets in Node.js. . UDP is a lightweight, connectionless protocol ideal for real‑time applications such as VoIP, gaming, telemetry, IoT, and multicast/broadcast systems. This module exposes APIs for creating sockets, sending and receiving datagrams, joining multicast groups, managing buffer sizes, and controlling low‑level socket behavior.
ماژول node:url ابزارهایی برای تحلیل، ساخت، و دستکاری URLها در Node.js فراهم میکند. Node.js دو API برای کار با URL دارد: WHATWG URL API — استاندارد مدرن و سازگار با مرورگرها (توصیهشده). Legacy API — API قدیمی Node.js (غیرتوصیهشده). WHATWG URL API یک رابط تمیز، سازگار و قدرتمند برای کار با اجزای URL، پارامترهای query، الگوهای URL و حتی Blob URLها ارائه میدهد.
ماژول node:util مجموعهای از توابع کمکی قدرتمند برای استفاده در هستهٔ Node.js و همچنین توسعهٔ برنامهها ارائه میدهد. این ماژول ابزارهایی برای دیباگ، بازرسی اشیا، تبدیل Callback ↔ Promise، قالببندی رشتهها، بررسی انواع، مدیریت خطاها، رمزگذاری متن، پردازش MIME، پارس آرگومانهای CLI، سیگنالهای Abort، و ابزارهای متفرقه فراهم میکند. این ماژول یکی از جعبهابزارهای اصلی و ضروری برای توسعهدهندگان Node.js است.
ماژول node:worker_threads امکان اجرای واقعی چندریسمانی (Multithreading) را در Node.js فراهم میکند. برخلاف مدل تکریسمانی سنتی Node.js، Worker Threads اجازه میدهند کارهای سنگین CPU در ریسههای جداگانه اجرا شوند بدون اینکه حلقهٔ رویداد (Event Loop) مسدود شود. این ماژول از حافظهٔ اشتراکی، انتقال بدون کپی (Zero‑Copy)، کانالهای پیام، Worker Pool، محدودیت منابع و ابزارهای همگامسازی پیشرفته پشتیبانی میکند. Worker Threads برای پردازشهای محاسباتی سنگین ایدهآل هستند، در حالی که I/O همچنان باید توسط ریسهٔ اصلی مدیریت شود.
راهنمای جامع ماژول V8 در Node.js (ماژول node:v8)
ماژول node:vm امکان کامپایل و اجرای کد جاوااسکریپت در کانتکستهای ایزولهٔ V8 را فراهم میکند. این کانتکستها مانند یک «سندباکس سبک» داخل برنامهٔ Node.js عمل میکنند و هرکدام globalThis مخصوص خود را دارند. این ماژول برای اجرای پویا، موتورهای قالب (Template Engines)، سیستمهای افزونه (Plugin Systems)، REPLها و تست ایزولهٔ منطق بسیار مناسب است. اما نکتهٔ بسیار مهم: vm یک ابزار امنیتی نیست و نباید برای اجرای کدهای غیرقابلاعتماد استفاده شود.
iRedMail یک بستهٔ متنباز برای راهاندازی سریع و کامل سرور ایمیل است. این نرمافزار شامل Postfix، Dovecot، SpamAssassin، ClamAV، Roundcube و ابزارهای مدیریتی دیگر است. نصب آن روی لینوکس ساده است، اما نیازمند دقت در تنظیمات شبکه و DNS میباشد. در این مقاله مراحل نصب نسخهٔ 1.7.4 روی لینوکس (Debian/Ubuntu) را توضیح میدهیم.