𝗕𝗲𝘆𝗼𝗻𝗱 𝗛𝗧𝗧𝗣 𝗶𝗻 𝗥𝘂𝘀𝘁: 𝗥𝗲𝗮𝗹-𝗧𝗶𝗺𝗲 𝗦𝗼𝗰𝗸𝗲𝘁𝘀 𝗮𝗻𝗱 𝗙𝗧𝗣

பெரும்பாலான பணிகளுக்கு HTTP சிறந்தது. ஆனால், இரண்டு குறிப்பிட்ட விஷயங்களில் அது பின்தங்கியுள்ளது.

  1. Real-time push. ஏதேனும் ஒரு நிகழ்வு உடனடியாக நடக்கும்போது, அதை உலாவிகள் (Browsers) உடனே தெரிந்துகொள்ள வேண்டும். Raw WebSockets வேலை செய்யும், ஆனால் reconnection மற்றும் routing ஆகியவற்றிற்கான அனைத்து தர்க்கங்களையும் (logic) நீங்களே எழுத வேண்டும். JavaScript டெவலப்பர்களுக்கு Socket.IO ஒரு தரநிலையாக உள்ளது, ஆனால் சமீப காலம் வரை Rust-இல் ஒரு சிறந்த server implementation இல்லை.

  2. FTP மூலம் கோப்புப் பரிமாற்றம் (File transfer). பழைய அமைப்புகள் (Legacy systems) மற்றும் மீடியா பைப்லைன்கள் (media pipelines) எங்கும் FTP-யைப் பயன்படுத்துகின்றன. Rust async ecosystem-இல் நீண்ட காலமாக இந்த இடைவெளி இருந்தது.

இந்த இடைவெளிகளை எவ்வாறு நிரப்புவது என்பதை இந்தப் பதிவு உங்களுக்குக் காட்டுகிறது. நாங்கள் ஒரு Socket.IO server மற்றும் ஒரு FTP server-ஐ உருவாக்குகிறோம். பின்னர் அவற்றை இணைக்கிறோம். FTP மூலம் ஒரு கோப்பு பதிவேற்றப்படும்போது (upload), இணைக்கப்பட்டுள்ள ஒவ்வொரு உலாவியையும் (browser) அமைப்பு உடனடியாகத் தெரியப்படுத்துகிறது.

நாங்கள் பயன்படுத்தும் கருவிகள்:

• Socketioxide: Socket.IO-வின் Rust implementation. இது Node.js அல்லது Python போன்ற எந்தவொரு Socket.IO client-உடனும் வேலை செய்யும். • Libunftp: இணைக்கக்கூடிய (composable) FTP servers-ஐ உருவாக்க உதவும் ஒரு கருவி. • Suppaftp: Rust-க்கான ஒரு async FTP client.

முக்கிய அம்சங்கள்:

பணிப்பாய்வு (Workflow):

  1. FTP Client, FTP Server-க்கு ஒரு கோப்பைப் பதிவேற்றுகிறது.
  2. FTP Server ஒரு broadcast event-ஐத் தூண்டுகிறது.
  3. Socket.IO server அந்த நிகழ்வைப் பெறுகிறது.
  4. Socket.IO server உலாவியில் (browser) ஒரு "file_uploaded" நிகழ்வை வெளியிடுகிறது (emits).

இந்த முறை கோப்புகளுக்கு மட்டுமல்லாமல் மற்றவற்றுக்கும் பொருந்தும். வேலை முடிவடைந்ததற்கான அறிவிப்புகள் (job completion alerts), நேரலை தரவு புதுப்பிப்புகள் (live data updates) அல்லது deployment dashboards ஆகியவற்றிற்கு இதைப் பயன்படுத்தலாம்.

முழுமையான குறியீடு (code) GitHub-இல் கிடைக்கிறது.

ஆதாரம்: https://dev.to/manan_shukla_eebf35d10bbf/beyond-http-in-rust-real-time-sockets-and-ftp-built-from-scratch-3o2a