Skip to Content
പ്രധാന ആശയങ്ങൾറസ്റ്റ് കോർ ആർക്കിടെക്ചർ

റസ്റ്റ് കോർ ആർക്കിടെക്ചർ

ആൻഡ്രോയിഡിനും iOS-നും ഇടയിൽ സമ്പൂർണ്ണ തുല്യത ഉറപ്പുനൽകുന്നതിനും ഏറ്റവും ഉയർന്ന പ്രകടനം കൈവരിക്കുന്നതിനും, Tracelet-ൻ്റെ പ്രധാന ലോജിക് പൂർണ്ണമായും Rust എന്നതിൽ എഴുതിയിരിക്കുന്നു. ഇതിൽ സ്റ്റേറ്റ് മെഷീൻ, HTTP സമന്വയ എഞ്ചിൻ, SQLite പെർസിസ്റ്റൻസ് ലെയർ, ബാറ്ററി ബഡ്ജറ്റ് കണക്കുകൂട്ടലുകൾ എന്നിവ ഉൾപ്പെടുന്നു.


എന്തുകൊണ്ട് തുരുമ്പ്?

റസ്റ്റിൽ കോർ എഞ്ചിൻ എഴുതുന്നത് ക്രോസ്-പ്ലാറ്റ്ഫോം പശ്ചാത്തല നിർവ്വഹണത്തിലെ നിരവധി നിർണായക വെല്ലുവിളികൾ പരിഹരിക്കുന്നു:

  1. പൂജ്യം പൊരുത്തക്കേടുകൾ: പ്രത്യേക സ്വിഫ്റ്റ്, കോട്ട്ലിൻ നടപ്പിലാക്കലുകൾക്ക് പകരം, ഒരൊറ്റ, പങ്കിട്ട കോഡ്ബേസിനെ ആശ്രയിക്കുന്നതിലൂടെ, iOS, Android എന്നിവ എല്ലാ സാഹചര്യങ്ങളിലും ഒരേപോലെ പ്രവർത്തിക്കുമെന്ന് ഞങ്ങൾ ഉറപ്പാക്കുന്നു. ഒരു ബഗ് പരിഹരിച്ചാൽ, അത് എല്ലായിടത്തും പരിഹരിക്കപ്പെടും.
  2. നിർഭയമായ കൺകറൻസി: പശ്ചാത്തല സമന്വയ എഞ്ചിൻ കനത്ത മൾട്ടിത്രെഡ് ലോഡുകളിൽ കുറ്റമറ്റ രീതിയിൽ പ്രവർത്തിക്കുന്നു. റസ്റ്റിൻ്റെ കർശനമായ കംപൈലർ ഡാറ്റ-റേസ് സ്വാതന്ത്ര്യം ഉറപ്പുനൽകുന്നു, ലൊക്കേഷനുകൾ റെക്കോർഡുചെയ്യുകയും പശ്ചാത്തല ത്രെഡുകളിൽ ഒരേസമയം അപ്‌ലോഡ് ചെയ്യുകയും ചെയ്യുമ്പോൾ കൺകറൻസി ബഗുകൾ ഒഴിവാക്കുന്നു.
  3. പ്രകടനവും സുരക്ഷയും: റസ്റ്റ് സി-ലെവൽ പ്രകടനത്തോടെയും പൂജ്യത്തിന് സമീപമുള്ള മെമ്മറി ഫൂട്ട്പ്രിൻ്റോടെയും പ്രവർത്തിക്കുന്നു, ഇത് ബാറ്ററി-നിയന്ത്രിത പശ്ചാത്തല നിർവ്വഹണത്തിന് അനുയോജ്യമാക്കുന്നു. മാലിന്യ ശേഖരണമില്ലാതെ മെമ്മറി സുരക്ഷ ഉറപ്പുനൽകുന്നു, നൾ പോയിൻ്ററുകൾ അല്ലെങ്കിൽ മെമ്മറിക്ക് പുറത്തുള്ള പിശകുകൾ കാരണം പശ്ചാത്തല എഞ്ചിൻ ഒരിക്കലും തകരാറിലാകില്ലെന്ന് ഉറപ്പാക്കുന്നു.

ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു: UniFFI ബൈൻഡിംഗുകൾ

റസ്റ്റും നേറ്റീവ് പ്ലാറ്റ്‌ഫോമുകളും തമ്മിലുള്ള വിടവ് നികത്താൻ Tracelet മോസില്ലയുടെ UniFFI (യൂണിവേഴ്‌സൽ ഫോറിൻ ഫംഗ്‌ഷൻ ഇൻ്റർഫേസ്) ഉപയോഗിക്കുന്നു.

  1. നിർവ്വചനം: റസ്റ്റിൽ ഞങ്ങൾ കോർ API നിർവചിക്കുന്നു (ഉദാ. ട്രാക്കിംഗ് ആരംഭിക്കുന്നതിനും ഡാറ്റ സമന്വയിപ്പിക്കുന്നതിനും അല്ലെങ്കിൽ ലൊക്കേഷൻ അപ്‌ഡേറ്റുകൾ കൈകാര്യം ചെയ്യുന്നതിനുമുള്ള രീതികൾ).
  2. ജനറേഷൻ: UniFFI സ്വപ്രേരിതമായി റസ്റ്റ് കോഡ് പാഴ്‌സ് ചെയ്യുകയും iOS-നായി സുരക്ഷിതവും ഭാഷാപരമായ Swift ബൈൻഡിംഗുകളും Android-നായി Kotlin ബൈൻഡിംഗുകളും സൃഷ്ടിക്കുകയും ചെയ്യുന്നു.
  3. നിർവ്വഹണം: Flutter പ്ലഗിൻ നേറ്റീവ് iOS/Android കോഡിലേക്ക് വിളിക്കുമ്പോൾ, നേറ്റീവ് കോഡ് UniFFI- ജനറേറ്റഡ് ബൈൻഡിംഗുകളെ വിളിക്കുന്നു, അത് അന്തർലീനമായ റസ്റ്റ് ലോജിക് തടസ്സമില്ലാതെ നടപ്പിലാക്കുന്നു.

ബൈൻഡിംഗുകൾ സ്വയമേവ ജനറേറ്റുചെയ്യുന്നതിനാൽ, മാനുവൽ ജെഎൻഐ (ജാവ നേറ്റീവ് ഇൻ്റർഫേസ്) അല്ലെങ്കിൽ ഒബ്ജക്റ്റീവ്-സി ബ്രിഡ്ജിംഗ് കോഡ് പരിപാലിക്കാൻ ഇല്ല. ഇത് പൂർണ്ണമായും തരം സുരക്ഷിതമാണ്.


മുൻകൂട്ടി സമാഹരിച്ച ബൈനറികൾ (റസ്റ്റ് ടൂൾചെയിൻ ആവശ്യമില്ല)

റസ്റ്റ് ടൂൾചെയിൻ ഇൻസ്റ്റാൾ ചെയ്യാനും ക്രോസ്-കംപൈലേഷൻ ടാർഗെറ്റുകൾ കോൺഫിഗർ ചെയ്യാനും ദൈർഘ്യമേറിയ ബിൽഡ് ടൈമുകൾ സഹിക്കാനും ഡവലപ്പർമാരെ നിർബന്ധിക്കുന്നതാണ് മൊബൈൽ ഡെവലപ്‌മെൻ്റിലെ റസ്റ്റിൻ്റെ പൊതുവായ വേദന.

പ്രീ-കംപൈൽ ചെയ്‌ത ബൈനറികൾ വിതരണം ചെയ്തുകൊണ്ട് Tracelet ഇത് പരിഹരിക്കുന്നു.

നിങ്ങളുടെ Flutter പ്രോജക്റ്റിലേക്ക് tracelet പ്ലഗിൻ ചേർക്കുമ്പോൾ, നിങ്ങളുടെ മെഷീനിൽ Rust ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതില്ല. Tracelet-ൻ്റെ CI/CD പൈപ്പ്‌ലൈൻ ഓരോ റിലീസിനും നേറ്റീവ് ലൈബ്രറികൾ സ്വയമേവ നിർമ്മിക്കുകയും പ്രസിദ്ധീകരിക്കുകയും ചെയ്യുന്നു.

ആൻഡ്രോയിഡ് സമാഹാരം

  • എല്ലാ പ്രധാന ആൻഡ്രോയിഡ് ആർക്കിടെക്ചറുകൾക്കുമായി (arm64-v8a, armeabi-v7a, x86, x86_64) ഒരു നേറ്റീവ് പങ്കിട്ട ലൈബ്രറിയിലേക്ക് (.so) റസ്റ്റ് കോഡ് സമാഹരിച്ചിരിക്കുന്നു.
  • ഈ ലൈബ്രറികൾ, ജനറേറ്റ് ചെയ്‌ത കോട്‌ലിൻ ബൈൻഡിംഗുകൾക്കൊപ്പം, ഒരു ആൻഡ്രോയിഡ് ആർക്കൈവിലേക്ക് (.aar) പാക്കേജ് ചെയ്‌തിരിക്കുന്നു.
  • നിങ്ങൾ ഫ്ലട്ടർ ആപ്പ് നിർമ്മിക്കുമ്പോൾ, Tracelet റിപ്പോസിറ്ററിയിൽ നിന്ന് മുൻകൂട്ടി നിർമ്മിച്ച .aar ഗ്രാഡിൽ സ്വയമേവ ഡൗൺലോഡ് ചെയ്യുന്നു.

iOS സമാഹാരം

  • iOS ഉപകരണങ്ങൾക്കും (arm64), സിമുലേറ്ററുകൾക്കുമായി (arm64, x86_64) ഒരു സ്റ്റാറ്റിക് ലൈബ്രറിയിലേക്ക് (.a) റസ്റ്റ് കോഡ് സമാഹരിച്ചിരിക്കുന്നു.
  • ഈ ലൈബ്രറികൾ ഒരു Apple XCFramework-ലേക്ക് (TraceletCore.xcframework) ജനറേറ്റുചെയ്‌ത സ്വിഫ്റ്റ് ബൈൻഡിംഗുകൾക്കൊപ്പം ബണ്ടിൽ ചെയ്‌തിരിക്കുന്നു.
  • നിങ്ങൾ pod install റൺ ചെയ്യുമ്പോൾ, CocoaPods (അല്ലെങ്കിൽ സ്വിഫ്റ്റ് പാക്കേജ് മാനേജർ) ടാഗ് ചെയ്‌ത GitHub റിലീസിൽ നിന്ന് മുൻകൂട്ടി കംപൈൽ ചെയ്‌ത TraceletCore.xcframework നേരിട്ട് ഡൗൺലോഡ് ചെയ്യുന്നു.
⚡

ഈ പ്രീ-കംപൈൽ ചെയ്ത വിതരണം, നിങ്ങളുടെ ഫ്ലട്ടർ ബിൽഡുകൾ മിന്നൽ വേഗത്തിൽ നിലനിൽക്കുമെന്നും ഇഷ്‌ടാനുസൃത റസ്റ്റ് സജ്ജീകരണങ്ങൾ ആവശ്യമില്ലാതെ തന്നെ നിങ്ങളുടെ CI/CD പൈപ്പ് ലൈനുകൾ ബോക്‌സിന് പുറത്ത് പ്രവർത്തിക്കുമെന്നും ഉറപ്പാക്കുന്നു.

Last updated on