మొజిల్లా ప్రాజెక్ట్ ద్వారా స్థాపించబడిన రస్ట్ 1.69 సాధారణ-ప్రయోజన ప్రోగ్రామింగ్ లాంగ్వేజ్ విడుదల, కానీ ఇప్పుడు స్వతంత్ర లాభాపేక్ష లేని సంస్థ రస్ట్ ఫౌండేషన్ ఆధ్వర్యంలో అభివృద్ధి చేయబడింది, ప్రచురించబడింది. భాష మెమరీ భద్రతపై దృష్టి పెడుతుంది మరియు చెత్త సేకరించేవాడు మరియు రన్టైమ్ (ప్రామాణిక లైబ్రరీ యొక్క ప్రాథమిక ప్రారంభ మరియు నిర్వహణకు రన్టైమ్ తగ్గించబడింది) వినియోగాన్ని నివారించేటప్పుడు అధిక ఉద్యోగ సమాంతరతను సాధించడానికి మార్గాలను అందిస్తుంది.
రస్ట్ యొక్క మెమరీ హ్యాండ్లింగ్ పద్ధతులు పాయింటర్లను మానిప్యులేట్ చేసేటప్పుడు డెవలపర్ను లోపాల నుండి కాపాడతాయి మరియు తక్కువ-స్థాయి మెమరీ హ్యాండ్లింగ్ కారణంగా తలెత్తే సమస్యల నుండి రక్షిస్తాయి, అనగా మెమరీ ప్రాంతాన్ని విడుదల చేసిన తర్వాత యాక్సెస్ చేయడం, శూన్య పాయింటర్లను డిఫెరెన్సింగ్ చేయడం, బఫర్ ఓవర్రన్లు మొదలైనవి. లైబ్రరీలను పంపిణీ చేయడానికి, బిల్డ్లను అందించడానికి మరియు డిపెండెన్సీలను నిర్వహించడానికి, ప్రాజెక్ట్ కార్గో ప్యాకేజీ మేనేజర్ను అభివృద్ధి చేస్తుంది. లైబ్రరీలను హోస్ట్ చేయడానికి crates.io రిపోజిటరీకి మద్దతు ఉంది.
రిఫరెన్స్ చెకింగ్, ఆబ్జెక్ట్ యాజమాన్యాన్ని ట్రాక్ చేయడం, ఆబ్జెక్ట్ జీవితకాలాన్ని (స్కోప్లు) ట్రాక్ చేయడం మరియు కోడ్ అమలు సమయంలో మెమరీ యాక్సెస్ యొక్క ఖచ్చితత్వాన్ని అంచనా వేయడం ద్వారా కంపైల్ సమయంలో రస్ట్లో మెమరీ భద్రత అందించబడుతుంది. రస్ట్ పూర్ణాంకాల ఓవర్ఫ్లోల నుండి రక్షణను కూడా అందిస్తుంది, ఉపయోగించే ముందు వేరియబుల్ విలువలను తప్పనిసరిగా ప్రారంభించడం అవసరం, ప్రామాణిక లైబ్రరీలో లోపాలను మెరుగ్గా నిర్వహిస్తుంది, డిఫాల్ట్గా మార్పులేని సూచనలు మరియు వేరియబుల్స్ భావనను వర్తింపజేస్తుంది, లాజికల్ లోపాలను తగ్గించడానికి బలమైన స్టాటిక్ టైపింగ్ను అందిస్తుంది.
ప్రధాన ఆవిష్కరణలు:
- కార్గో ప్యాకేజీ మేనేజర్ స్వయంచాలకంగా పరిష్కరించబడే హెచ్చరికల గుర్తింపును అమలు చేస్తుంది మరియు "కార్గో ఫిక్స్" లేదా "కార్గో క్లిప్పి -ఫిక్స్"ని అమలు చేయడానికి తగిన సిఫార్సుల అవుట్పుట్ను అమలు చేస్తుంది. హెచ్చరిక: ఉపయోగించని దిగుమతి: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | std ఉపయోగించండి::hash::Hash; | ^^^^^^^^^^^^^^^^ | = గమనిక: డిఫాల్ట్ హెచ్చరికతో '#[warn(unused_imports)]' ఆన్ చేయబడింది: 'foo' (bin "foo") 1 హెచ్చరికను రూపొందించింది (1 సూచనను వర్తింపజేయడానికి 'cargo fix —bin "foo"'ని అమలు చేయండి)
- కార్గో "కార్గో ఇన్స్టాల్" కమాండ్తో లైబ్రరీని ఇన్స్టాల్ చేయడానికి ప్రయత్నిస్తున్నప్పుడు "కార్గో యాడ్" కమాండ్ని ఉపయోగించడం కోసం సిఫార్సు అవుట్పుట్ను జోడించింది.
- సంకలన సమయాన్ని తగ్గించడానికి, బిల్డ్ స్క్రిప్ట్లలో డీబగ్గింగ్ సమాచారాన్ని చేర్చడం డిఫాల్ట్గా నిలిపివేయబడింది. బిల్డ్ స్క్రిప్ట్లు విజయవంతంగా అమలు చేయబడితే, మార్పు ఎటువంటి కనిపించే తేడాలకు దారితీయదు, కానీ వైఫల్యాలు సంభవించినట్లయితే, ట్రేస్బ్యాక్ డంప్ తక్కువ సమాచారాన్ని కలిగి ఉంటుంది. పాత ప్రవర్తనను Cargo.tomlకి తిరిగి ఇవ్వడానికి మీరు వీటిని జోడించాలి: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
- API యొక్క కొత్త భాగం స్థిరమైన వర్గానికి తరలించబడింది, ఇందులో పద్ధతులు మరియు లక్షణాల అమలులు స్థిరీకరించబడ్డాయి:
- Cstr :: బైట్ల నుండి_పూర్తి_వరకు
- కోర్::ffi::FromBytesUntilNulError
- స్థిరాంకాలకి బదులుగా ఏదైనా సందర్భంలో ఉపయోగించగల అవకాశాన్ని నిర్ణయించే “const” లక్షణం ఫంక్షన్లలో ఉపయోగించబడుతుంది:
- SocketAddr:: కొత్త
- SocketAddr::ip
- SocketAddr::port
- SocketAddr::is_ipv4
- SocketAddr::is_ipv6
- SocketAddrV4:: కొత్త
- SocketAddrV4::ip
- SocketAddrV4::port
- SocketAddrV6:: కొత్త
- SocketAddrV6::ip
- SocketAddrV6::port
- SocketAddrV6::flowinfo
- SocketAddrV6::scope_id
- కంపైలర్ ఆర్గ్యుమెంట్లలో నిజమైన మరియు తప్పుడు ఫ్లాగ్లను ఉపయోగించగల సామర్థ్యం జోడించబడింది.
మూలం: opennet.ru