Tokio (software)
ટોકિયો એ રસ્ટ પ્રોગ્રામિંગ ભાષા માટેની સોફ્ટવેર લાઇબ્રેરી છે. તે રનટાઇમ અને કાર્યો પૂરા પાડે છે જે અસિંક્રોનસ I/O ના ઉપયોગને સક્ષમ કરે છે, જે કાર્ય પૂર્ણ થવાના સંદર્ભમાં સુસંગતતા માટે પરવાનગી આપે છે. ટોકિયો ઓગસ્ટ 2016માં રસ્ટ માટે રજૂ કરવામાં આવી હતી, જે એક સામાન્ય હેતુ માટેની પ્રોગ્રામિંગ ભાષા છે. કાર્લ લેર્ચે દ્વારા વિકસાવવામાં આવેલ, ટોકિયોએ નેટવર્ક એપ્લિકેશન માળખા તરીકે શરૂઆત કરી હતી અને સોકેટ શ્રવણ અને પ્રસારણ જેવી સુવિધાઓને ટેકો આપે છે, જેનાથી સંદેશાઓને કમ્પ્યુટર્સ વચ્ચે સ્થાનાંતરિત કરવાની મંજૂરી મળે છે. ટોક્યોની શરૂઆત ઓગસ્ટ 2016માં કાર્લ લેર્ચે દ્વારા ફ્યુચર્સ પર બનેલા રસ્ટ માટે નેટવર્ક એપ્લિકેશન માળખા તરીકે થઈ હતી, જે નેટવર્ક-આધારિત મિડલવેર અને બિન-અવરોધિત અથવા અસિંક્રોનસ, રિએક્ટર માટે સજ્જતાના હિતના અમલીકરણને મંજૂરી આપે છે. ટોક્યો જાવા વર્ચ્યુઅલ મશીનો (JVM) માટે ટ્વિટર ખાતે વિકસાવવામાં આવેલી સ્કેલા-આધારિત એસિંક્રોનસ રિમોટ પ્રોસિજર કોલ (RPC) સિસ્ટમ ફિનાગલ દ્વારા પ્રેરિત હતી, જે વિતરિત સિસ્ટમોને JVMની અંદર વાતચીત કરવાની મંજૂરી આપે છે. ટોકિયો નીચલા સ્તરના રસ્ટ ક્રેટ મિયોનો ઉપયોગ કરે છે, જે પોતે ઇપોલ (લિનક્સ), કેક્યૂ (ફ્રીબીએસડી) અને ઇનપુટ/આઉટપુટ કમ્પ્લીશન પોર્ટ (આઈઓસીપી) એપીઆઈ (વિન્ડોઝ) જેવા સિસ્ટમ કૉલ્સનો ઉપયોગ કરે છે. "ટોકિયો" નામ ટોક્યો અને મિયો પરથી ઉતરી આવ્યું છે. ટોકિયોની પ્રારંભિક આવૃત્તિ જાન્યુઆરી 2017માં રજૂ કરવામાં આવી હતી, ત્યારબાદ ડિસેમ્બર 2020માં સંપૂર્ણ રજૂઆત કરવામાં આવી હતી. 2017માં, ટોકિયોને મોઝિલા ઓપન સોર્સ સપોર્ટ ફંડમાંથી અનુદાન મળ્યું હતું. એપ્રિલ 2021 માં, ટોક્યોએ તેના પ્રથમ પેઇડ ફાળો આપનાર, એલિસ રાઇલને પ્રોજેક્ટ વિકસાવવા અને તેના વપરાશકર્તાઓને સહાય કરવા બંને માટે ભંડોળ પૂરું પાડ્યું હતું. જ્યારે રસ્ટે નવેમ્બર 2019 માં રજૂ થયેલ આવૃત્તિ 1.39 થી અસિંક્રોનસ કાર્યોને ટેકો આપ્યો છે, ત્યારે તે તેમને ચલાવવા માટે કોઈ સુવિધાઓ પ્રદાન કરતું નથી, તે હેતુ માટે બાહ્ય રનટાઇમની જરૂર પડે છે. ટોકિયો એક રનટાઇમ પ્રદાન કરે છે જે મલ્ટી-થ્રેડેડ વર્ક સ્ટીલિંગ શેડ્યૂલરનો ઉપયોગ કરે છે. રસ્ટના ભાવિનું આળસપૂર્વક મૂલ્યાંકન કરવામાં આવે છે, જેમાં કાર્યોને કોઈ પણ કામ કરતા પહેલા. અવેઇટ કૉલ કરવાની જરૂર પડે છે. જ્યારે. અવેઇટ બોલાવવામાં આવે છે, ત્યારે ટોકિયોનો રનટાઇમ તેના I/O પૂર્ણ થાય ત્યાં સુધી મૂળ ભવિષ્યને અટકાવી શકે છે, અને એક અલગ કાર્યને અટકાવી શકે છે જે આગળની પ્રક્રિયા માટે તૈયાર છે. ટોકિયોના વપરાશકર્તાઓમાં ડિસ્કોર્ડ અને એડબ્લ્યુએસ લેમ્બડા પાછળની વિકાસ ટીમો શામેલ છે. જાવાસ્ક્રિપ્ટ રનટાઇમ Node.js ની સરખામણીમાં જાવાસ્ક્રિપ્ટ અને ટાઇપસ્ક્રિપ્ટ રનટાઇમ ડેનો હૂડ હેઠળ ટોકિયોનો ઉપયોગ કરે છે, જે લિબુવ લાઇબ્રેરીનો ઉપયોગ કરે છે. અસિંક્રોનસ કોડ ટોકિયો અસિંક્રોનસ રનટાઇમની રચના દ્વારા રસ્ટમાં અસિંક્રોનસ કાર્યોના ઉપયોગ માટે પરવાનગી આપે છે. આ #[ટોકિયોઃઃ મુખ્ય] મેક્રો દ્વારા પરિપૂર્ણ કરી શકાય છે. ઉદાહરણ તરીકેઃ #[ટોકિયોઃ: મુખ્ય] અસિંક fn મુખ્ય ()-> પરિણામ <()> {ચાલો યુઆરએલ = "https://en.wikipedia.org"; લખાણ = રીક્વેસ્ટ દોઃ: મેળવો (યુઆરએલ). રાહ જુઓ?. લખાણ (). રાહ જુઓ? ; પ્રિન્ટ! ("{}", લખાણ); ઓકે (())} આ ઉદાહરણમાં, અંગ્રેજી વિકિપીડિયા માટે હાયપરટેક્સ્ટ માર્કઅપ લેંગ્વેજ (એચટીએમએલ) ની વિનંતી કરવા માટે રેકવેસ્ટ ક્રેટનો ઉપયોગ થાય છે. વિનંતી તાત્કાલિક હાથ ધરવામાં ન આવે તેની ખાતરી કરવા માટે, ટોકિયો ફંક્શન કૉલને અસિંક્રોનસ રનટાઇમમાં લપેટી લે છે, પ્રિન્ટએલએન () પર કૉલ કરતા પહેલા વિનંતી પૂર્ણ થવાની રાહ જુએ છે. ટોકિયોમાં રસ્ટ સ્ટાન્ડર્ડ લાઇબ્રેરીનું એક સંસ્કરણ પણ સામેલ છે જે અસિંક્રોનસ રીતે ઉપયોગમાં લેવા માટે રચાયેલ છે. ઉદાહરણ તરીકે, ટોકિયોઃ: એફએસઃ: રીડ _ ટુ _ એન્ડ (), જે ફાઇલની સામગ્રીને વાંચે છે, તે એસટીડીઃઃ એફએસઃ: રીડ _ ટુ _ એન્ડ () નું અસુમેળ સંસ્કરણ છે. વધુમાં, ટોકિયો ટોકિયો-યુરિંગ નામના અલગ ક્રેટમાં લિનક્સ એસિંક્રોનસ I/O સિસ્કલ ઇન્ટરફેસને ટેકો આપે છે. કમ્પાઇલ-ટાઇમ ગ્રીન-થ્રેડિંગ ટોકિયો વપરાશકર્તાઓને ટોકિયોઃ: સ્પૉન () ફંક્શનનો ઉપયોગ કરીને કાર્યો બનાવવાની મંજૂરી આપે છે, જે ગ્રીન થ્રેડો છે. લીલા થ્રેડો વપરાશકર્તા સ્તરે ચાલે છે, જ્યારે મૂળ થ્રેડો હંમેશા ઉપલબ્ધ ન હોય ત્યારે સમાંતરતા પૂરી પાડે છે. રસ્ટની અગાઉની આવૃત્તિઓએ ગ્રીન થ્રેડિંગનો અમલ કર્યો હતો; આ કાર્યક્ષમતાને રસ્ટ 1 માં દૂર કરવામાં આવી હતી. ફ્યુચર્સથી વિપરીત, કાર્યોને. અવેઇટનો ઉપયોગ કરવાની જરૂર નથી, કારણ કે જ્યારે થ્રેડ ઉપલબ્ધ હશે ત્યારે કાર્ય આપમેળે ચલાવવામાં આવશે. સોકેટ લિસનિંગ ટોકિયો નોન-બ્લૉકિંગ અભિગમ દ્વારા સોકેટ પર સાંભળવામાં સક્ષમ છે. ખાસ કરીને, ટી. સી. પી. લિસ્ટનર માળખું ટ્રાન્સમિશન કંટ્રોલ પ્રોટોકોલ (ટી. સી. પી.) સોકેટ સાંભળનારને સરનામાં સાથે જોડે છે અને અસુમેળ રીતે કાર્યને અમલમાં મૂકે છે. બ્રોડકાસ્ટિંગ ટોકિયો પ્રસારણ ચેનલનો પ્રકાર પ્રદાન કરે છે, જે સંદેશાઓને બહુવિધ રીસીવરો પર પ્રસારિત કરવાની મંજૂરી આપે છે. સંદેશ મોકલ્યા પછી, તે આવા પ્રાપ્તકર્તાઓ દ્વારા પ્રાપ્ત થાય છે. આ અન્ય એપ્લિકેશનોમાં રીઅલ-ટાઇમ સંચાર અને વિતરિત પ્રણાલીઓને સક્ષમ કરે છે. સંદર્ભો બાહ્ય લિંક્સ ટોકિયો પર crates.io 2020 સોફ્ટવેર એમઆઇટી લાઇસન્સનો ઉપયોગ કરીને રસ્ટ ફ્રી કમ્પ્યુટર લાઈબ્રેરી સોફ્ટવેરમાં પ્રોગ્રામ કરેલ ફ્રી સોફ્ટવેર