Quick Crypto: رمزنگاری سریع و بومی تو React Native
خلاصهٔ کاملتر
react-native-quick-crypto یه پیادهسازی سریع از ماژول crypto نود جیاس ـه که بهجای جاوااسکریپت، با C/C++ و JSI نوشته شده. برخلاف پالیفیلهای فعلی که همهشون تو خود جاوااسکریپت اجرا میشن، این کتابخونه از Nitro Modules استفاده میکنه و به گفتهٔ سازنده (تیم Margelo) روی دستگاههای موبایل خیلی سریعتره.
هدف اصلیش اپهای Web3 و کیفپولهای ارز دیجیتال و دیتابیسهای local-first مبتنی بر CRDT ـه؛ یعنی هرجا که توابع رمزنگاری زیاد صدا زده میشن و کندی جاوااسکریپت اذیت میکنه. سازنده میگه سرعتش میتونه صدها برابر راهحلهای صرفاً جاوااسکریپتی باشه، چون رمزنگاری بهصورت بومی و کامپایلشده (روی OpenSSL) انجام میشه.
نکتهٔ جالبش اینه که میتونه جای crypto-browserify یا react-native-crypto رو بگیره، اونهم با یه تغییر تکخطی. کافیه تو تنظیمات Metro یا با پلاگین babel-plugin-module-resolver، ایمپورتهای crypto رو به این کتابخونه وصل کنی تا کل کدت بدون دستکاری از نسخهٔ بومی استفاده کنه.
کار باهاش هم شبیه همون API آشنای نود جیاس ـه. مثلاً برای هشکردن یه رشته با SHA256 اینجوری عمل میکنی:
import QuickCrypto from 'react-native-quick-crypto';
const hashed = QuickCrypto.createHash('sha256')
.update('Damn, Margelo writes hella good software!')
.digest('hex');نسخهٔ 1.x روی معماری جدید React Native و Nitro Modules کار میکنه و حداقل نسخهٔ پشتیبانیشدهٔ React Native هم 0.75 ـه؛ برای نسخههای قدیمیتر باید سراغ سری 0.x بری. البته سازنده تأکید میکنه که هنوز همهٔ الگوریتمهای رمزنگاری پشتیبانی نمیشن و بهتره قبل استفاده جدول پوشش پیادهسازی رو چک کنی. کل پروژه هم با لایسنس MIT منتشر شده.
نکات کلیدی:
- پیادهسازی بومی ماژول crypto نود با C/C++ و JSI بهجای جاوااسکریپت
- تا صدها برابر سریعتر از پالیفیلهای جاوااسکریپتی، مناسب اپهای Web3 و کیفپول
- جایگزین تکخطی crypto-browserify و react-native-crypto با تنظیم Metro یا Babel
- API سازگار با نود جیاس؛ مثلاً createHash برای هش SHA256
- نسخهٔ 1.x نیازمند معماری جدید و React Native 0.75 به بالا




