Golang Insights – Telegram
Golang Insights
760 subscribers
116 photos
7 videos
47 files
132 links
Stay ahead in Golang development with Golang Insights, your go-to for the latest news, tips, tricks, and code examples tailored for Golang enthusiasts and professionals.

Group: https://news.1rj.ru/str/GolangEngineers
Download Telegram
🚀 پکیج OTP پرقدرت و سبک برای ایجاد و اعتبارسنجی TOTP و HOTP

یه پکیج مینیمال، بدون وابستگی خارجی و با عملکرد بسیار بالا برای تولید و اعتبارسنجی OTP نوشتم که از هر دو الگوریتم HOTP و TOTP پشتیبانی می‌کنه.

ویژگی‌ها:
- پشتیبانی از SHA1، SHA256، SHA512
- قابلیت تولید URL برای Google Authenticator یا سایر
- بدون هیچ‌گونه وابستگی خارجی (zero-deps)
- عملکرد بالا و مصرف خیلی پایین مموری
- تست‌شده با RFCهای رسمی (RFC4226 و RFC6238)
- شامل ابزارهای کمکی مثل تولید secret، پارس URL، و...

🚀 طبق بنچمارک‌ها، این پکیج تا ۲ برابر سریع‌تر و با مصرف حافظه کمتر از پکیج‌های مشابه مثل github.com/pquerna/otp عمل می‌کنه.

📚 سورس‌کد: github.com/Ja7ad/otp

⭐️ خوشحال می‌شم اگر استفاده کردید، ریپو رو ستاره‌دار کنید یا نظرتون رو بگید.



⚡️@GoInsights | @GolangEngineers
👏104👍2👎1
🚀 نسخه ۱.۳.۰ پکیج otp منتشر شد

در این نسخه ۲ ویژگی خیلی مهم اضافه شد پشتیبانی از الگویتم OCRA (ایجاد کد و اعتبارسنجی) که طی rfc6287 معرفی شده است و سرویس otp-api که بدون نیاز به استفاده مستقیم از پکیج در قالب API از ویژگی های otp استفاده کنید.

دمو: https://otp-api.leapcell.app/docs

⚡️ ویژگی های جدید:

- پشتیبانی از الگوریتم OCRA به همراه تست کامل و proof وکتورهای rfc
- امکان ایجاد و اعتبارسنجی OCRA کد
- اضافه شدن سرویس otp-api برای پلت فرم های مختلف
- اضافه شدن docker image سرویس otp-api

مخرن گیتهاب: https://github.com/Ja7ad/otp
دانلود otp-api سرویس: https://github.com/Ja7ad/otp/releases/latest
دانلود داکر ایمیج: https://hub.docker.com/r/ja7adr/otp

🙌 اگر مایل هستید در بهبود پکیج کمک کنید می توانید شرایط مشارکت و issue ها را بررسی کنید.


⚡️@GoInsights | @GolangEngineers
👍2🔥2👎1
🚀 وبینار ارائه پکیج otp و درک عمیق الگوریتم های hotp و totp

به ما بپیوندید در یک جلسه‌ی فنی عمیق درباره‌ی الگوریتم‌های رمز یک‌بار مصرف (OTP)، جایی که به بررسی سازوکار داخلی HOTP (رمز یک‌بار مصرف مبتنی بر HMAC) و TOTP (رمز یک‌بار مصرف مبتنی بر زمان) می‌پردازیم—دو استاندارد پرکاربرد در افزایش امنیت احراز هویت.

در این وبینار خواهید آموخت:

- اصول رمزنگاری پشت HOTP و TOTP

- روش‌های تولید و اعتبارسنجی امن رمزهای یک‌بار مصرف

- کاربردهای واقعی در سامانه‌های احراز هویت مدرن

- دموی زنده‌ی کدنویسی با زبان Go (Golang)


فرقی نمی‌کند مهندس امنیت باشید، توسعه‌دهنده نرم‌افزار، یا یک علاقه‌مند به تکنولوژی؛ این جلسه درک شما را از دو مؤلفه‌ی حیاتی در سامانه‌های احراز هویت چندمرحله‌ای عمیق‌تر خواهد کرد.

🤝 شرکت در وبینار: https://adplist.org/session/mastering-otp-security-a-deep-dive-hotp-totp

🔰 مخزن پکیج: https://github.com/Ja7ad/otp


⚡️@GoInsights | @GolangEngineers
1👎1🔥1👏1
Media is too big
VIEW IN TELEGRAM
🚀 ویدئو و اسلاید های ارائه پکیج otp و درک عمیق الگوریتم های hotp و totp

در یک جلسه‌ی فنی عمیق درباره‌ی الگوریتم‌های رمز یک‌بار مصرف (OTP)، جایی که به بررسی سازوکار داخلی HOTP (رمز یک‌بار مصرف مبتنی بر HMAC) و TOTP (رمز یک‌بار مصرف مبتنی بر زمان) پرداختیم—دو استاندارد پرکاربرد در افزایش امنیت احراز هویت.

🛠 مخزن کتابخانه:

https://github.com/Ja7ad/otp

🖥 لینک اسلایدها:

https://docs.google.com/presentation/d/1D1BusBk_8CN4bYsuyfSvrZmVz23nsDvEXRKDgn-IPnw/edit?usp=sharing


🌄 دیدن ویدئو در یوتیوب:

https://youtu.be/N35Z5CPuZvs

اگه از کتابخونه خوشتون اومد، یه ستاره (🌟) توی گیت‌هاب بدین که کلی دلگرمی می‌ده!

https://github.com/Ja7ad/otp



⚡️@GoInsights | @GolangEngineers
5👍3🔥1
#tips #go

همیشه سعی کنید به جای اینکه بیاید کانال received-only را مستقیما به بیرون پاس دهید از proxy-channel استفاده کنید اینطوری یک فرآیند کاملا امن خواهید داشت.

// UnsafeGetChannel provides direct read access to the underlying channel.
// WARNING: Bypasses all pipeline safeguards.
//
// Returns:
// - The underlying receive channel
func (p *pipeline[T]) UnsafeGetChannel() <-chan T {
return p.ch
}


در زیر یک نمونه proxy-channel گذاشتم که خیلی بهتر از حالت قبل است.

func (p *pipeline[T]) Receive(ctx context.Context) <-chan T {
out := make(chan T)
go func() {
defer close(out)
for {
select {
case <-ctx.Done():
return
case item, ok := <-p.ch:
if !ok {
return
}
out <- item
}
}
}()
return out
}



⚡️@GoInsights | @GolangEngineers
👍4
ابزار آنلاین Dynamic captcha loader

با کمک این ابزار می توانید تست های integration وریفای چلنچ captcha را سمت سرور انجام دهید.

در حال حاضر google, cloudflare و hcaptcha را پشتیبانی می کند.


https://captcha.javad.dev/


⚡️@GoInsights | @GolangEngineers
🔥1
بالاخره نسخه دوم json برای گو پیاده سازی شد.

در issue شماره 71497 در مخزن Golang مربوط به معرفی نسخه جدیدی از بسته encoding/json با نام encoding/json/v2 و همچنین بسته جدید encoding/json/jsontext است. هدف این پروپوزال بهبود عملکرد، افزایش قابلیت‌های سفارشی‌سازی و رفع محدودیت‌های نسخه فعلی است.

در نسخه جدید، بسته jsontext امکاناتی برای پردازش نحوی JSON بدون استفاده از بازتاب (reflection) فراهم می‌کند، که مناسب برای کاربردهای سطح پایین و بهینه‌سازی‌های خاص است. بسته json/v2 نیز قابلیت‌های معنایی مانند marshal و unmarshal را با انعطاف‌پذیری بیشتر ارائه می‌دهد. این نسخه جدید به صورت آزمایشی و با فعال‌سازی متغیر محیطی GOEXPERIMENT=jsonv2 در دسترس قرار می‌گیرد.

- https://github.com/golang/go/issues/71497

- https://github.com/golang/go/tree/master/src/encoding/json/v2


⚡️@GoInsights | @GolangEngineers
👍241
Please open Telegram to view this post
VIEW IN TELEGRAM
🎆 Go 1.24.4 and 1.23.10 are released!

🔐 Security: Includes security fixes for CVE-2025-4673, CVE-2025-0913, and CVE-2025-22874 in net/http, os, and crypto/x509.
g
📰 Announcement: https://groups.google.com/g/golang-announce/c/ufZ8WpEsA3A/m/XDxq7uidAgAJ

📦 Download: go.dev/dl/#go1.24.4


⚡️@GoInsights | @GolangEngineers
👍2
Go 1.25 Release Candidate 1 is released!

🏖 Run it in dev! Run it in prod! File bugs! go.dev/issue/new

📡 Relaese note:
https://tip.golang.org/doc/go1.25

📦 Download: go.dev/dl/#go1.25rc1


⚡️@GoInsights | @GolangEngineers
🔥2🆒21
تغییرات عملکردی نسخه Go1.25

در نسخه ۱.۲۵ گولنگ تغییرات و بهبود های عملکردی در GC و نسخه دوم json داریم که در پست بلاگم میتوانید دنبال کنید.

https://bitstack.substack.com/p/go-125-upcoming-changes-faster-smarter


⚡️@GoInsights | @GolangEngineers
صفحه‌ی بلاگ و خبرنامه‌ی شخصی من با محوریت مطالب فنی و آموزشی

اگر علاقه‌مند بودید، خوشحال می‌شم به این صفحات بپیوندید تا از آخرین نوشته‌ها و مطالب من باخبر باشید:

بلاگ: https://bitstack.substack.com/

خبرنامه‌ی لینکدین: https://www.linkedin.com/newsletters/bitstack-7343373715612561409/


⚡️@GoInsights | @GolangEngineers
1
🚀 افزایش سرعت بوت توزیع های لینوکس

یکی از مشکلاتی که پس مدت ها در سرعت بوت لینوکس پیش می آید سرویس های غیر ضروری systemd ای که هنگام بوت اجرا می شود هست که در این پست بلاگم سعی کردم یک روش امن را معرفی کنم که سرعت بوت را بهبود دهید.

https://open.substack.com/pub/bitstack/p/speed-up-your-linux-startup-delay



⚡️@GoInsights | @GolangEngineers
👍2🆒1
Golang Insights pinned « صفحه‌ی بلاگ و خبرنامه‌ی شخصی من با محوریت مطالب فنی و آموزشی اگر علاقه‌مند بودید، خوشحال می‌شم به این صفحات بپیوندید تا از آخرین نوشته‌ها و مطالب من باخبر باشید: بلاگ: https://bitstack.substack.com/ خبرنامه‌ی لینکدین: https://www.linkedin.com/newsletters/bitstack…»
Forwarded from عکس نگار
⁉️ بررسی نحوه ذخیره شدن slice در حافظه stack و شرایط

در مطلبی به تغییرات نسخه 1.25 انتشار کردم یکی از ویژگی هایی که اضافه شده "Improved Stack Allocation for Slices" است. که این امکان را می دهد براساس یک threshold مشخصی slice شما در حافظه stack به عنوان یک آرایه ذخیره شود.

در تصویر بخشی است که اینکار را انجام می دهد:

1. در ابتدا مقدار threshold شما را میگیرد که پیش فرض تا 32 هست و امکان تغییر با استفاده از فلگ -gcflags=all=-d=variablemakehash=n امکان غیرفعال کردن دارد.

2. در بخش دوم که تصویر اشاره کردم maxStackSize را تقسیم بر t.Elem().Size() یا تعداد المنت slice می کنیم و یک اندازه مشخص برا ی ذخیره کردن در stack مشخص می شود و بصورت آرایه نگه میداریم.

3. در مورد سوم تعداد المنتی که داخل stack میرود یا داخل heap مانند مثال زیر است:

maxStackSize / t.Elem().Size() = total element stored in stack

- 32 / >= 32 = 0 (all store to heap)
- 32 / 13 = 2 (2 element first store into stack other store into heap)
- 32 / 5 = 6 (all element store into stack)


طبق مثال فوق هرچی تعداد المنت به threshold نزدیک شود تعداد المنتی کمتری داخل stack نگه داری می شود و الباقی داخل heap می رود.


⚡️@GoInsights | @GolangEngineers
🔥81
🚀 بررسی عمیق Stack-Allocated Slices

در پست قبلی خیلی خلاصه این تغییر را بررسی کردیم اما در صفحه بلاگم سعی کردم خیلی عمیق این تغییر را بررسی کنم و نکاتی باعث این بهبود شده را توضیح دهم.

https://bitstack.substack.com/p/go-125-compiler-update-stronger-alignment

در صورتیکه از این مطلب لذت بردین در صفحه بلاگم با زدن subscribe از آخرین پست هایم بواسطه ایمیل با خبر شوید.

https://bitstack.substack.com/

اگر مایل بودین می توانید در خبرنامه لینکدین هم مشترک شوید در آنجا هم پست هایم را اشتراک میزارم:

https://www.linkedin.com/newsletters/bitstack-7343373715612561409/


⚡️@GoInsights | @GolangEngineers
👍42
🚀 سرویس Leapcell زیر ساخت رایگان

با استفاده از سرویس می توانید پروژه های متن باز خود را بصورت رایگان روی زیرساخت Leapcell اجرا کنید و برروی یک دامنه خاص یا رایگان بالا بیارید.

https://leapcell.io/

به عنوان مثال:

- https://github.com/Ja7ad/otp
- https://otp-api.leapcell.app/docs


⚡️@GoInsights | @GolangEngineers
👍31
Forwarded from اَلِف.حِ.پِ 🍋 (امیرحسین پناهےفر)
برای اینکه راحت‌تر بتونید نسخه آفلاین کتاب آموزش زبان Go به فارسی رو داشته باشید، بسته رو توی AUR گذاشتم.
این بسته یه نسخه وب آفلاین از کتاب «Go فارسی»ئه که می‌تونید بدون نیاز به اینترنت بخونیدش.

برای نصب با yay (یا هر AUR helper دیگه):
yay -S gofarsi-bin

- زبان گو فارسی
@alefhepe
10
🎉 Go 1.25 Release Candidate 2 is released!

🏃‍♂️ Run it in dev! Run it in prod! File bugs! go.dev/issue/new

📡 Changes logs: https://bitstack.substack.com/p/go-125-upcoming-changes-faster-smarter

⬇️ Download: go.dev/dl/#go1.25rc2


⚡️@GoInsights | @GolangEngineers
👍1
🧬 فصل ششم ژنریک (Generics)

پس از سه ماه در کنار کارهایم بخش ششم ژنریک ها را کامل کردم این بخش یکی از جذاب ترین بخش ها بود که سعی کردم خیلی عمیق بپردازم و الان آماده اس برای مطالعه. امیدوارم این مطلب برایتان مفید واقع شود.

https://book.gofarsi.ir/chapter-6/

درصورتیکه کتاب را میخواهید بصورت آفلاین استفاده کنید می توانید آخرین نسخه desktop را دانلود را با اجرای نسخه قبلی به نسخه جدید آپدیت نمایید.

https://github.com/GoFarsi/book/releases

در ضمن مشارکت در کتاب آزاد است و جای تجربیات شما خالی است اگر مایل بودین می توانید تجربیات خود را در کتاب به اشتراک بزارید.

https://github.com/GoFarsi/book/blob/main/COUNTRIBUTING.md

⚡️@GoInsights | @GolangEngineers
🔥83
🚀 مشارکت در توسعه sdk پروژه meilisearch

میلی سرچ یک موتور جستجوی متن‌باز و سریع است که با پشتیبانی از جستجوی بلادرنگ، زبان‌های مختلف و API ساده، تجربه‌ای روان برای کاربران فراهم می‌کند. این موتور با افزودن قابلیت‌های هوش مصنوعی مانند جستجوی برداری و تعامل با مدل‌های زبانی بزرگ (LLMs)، امکان جستجوی معنایی و مکالمه‌ای را نیز فراهم کرده و گزینه‌ای مناسب برای پروژه‌های مدرن محسوب می‌شود.

من به عنوان Maintainer بخش sdk زبان گولنگ پروژه از دوستانی که مایل هستند مشارکت در پروژه آزاد را تجربه کنند دعوت میکنم از این فرصت برای بهبود sdk و تجربه پیاده سازی sdk استفاده کنید.

🏘 https://www.meilisearch.com/
https://github.com/meilisearch/meilisearch-go


⚡️@GoInsights | @GolangEngineers
7