Skip to content

v3.4.0

Latest

Choose a tag to compare

@amir-zr amir-zr released this 21 Jun 19:36
· 1 commit to main since this release

🚀 Flutter V2Ray Client v3.4.0

We're pleased to release Flutter V2Ray Client v3.4.0, a feature-focused update that adds Hysteria share-link parsing at the Dart layer and fixes allowInsecure handling for XHTTP transports. If you're already on 3.3.0, this is a straightforward bump: same embedded Xray v26.6.1 core and Android VPN/TUN stack, with new URL parser coverage and a transport bug fix.


🆕 Hysteria URL Parser

  • New HysteriaURL parser — parse Hysteria share links into full V2Ray/Xray outbound config via V2ray.parseFromURL()
  • Supported schemes: hysteria://, hysteria2://, hy://, hy2://
  • Protocol versions: Hysteria v1 and v2 (auto-detected from scheme)
  • Query parameters: sni, security, allowInsecure, fm (FinalMask), masquerade, udpIdleTimeout, and more
  • Drop-in usage — same flow as VMess, VLess, Trojan, and Shadowsocks:
V2RayURL parser = V2ray.parseFromURL('hysteria2://your-share-link');
await v2ray.startV2Ray(
  remark: parser.remark,
  config: parser.getFullConfiguration(),
);

🐛 XHTTP allowInsecure Fix

  • Fixed allowInsecure not being applied correctly when parsing XHTTP / SplitHTTP transport links
  • TLS settings now honor the allowInsecure flag from share-link query parameters, consistent with other transports

🛠️ What's in this release

  • Hysteria share links: end-to-end parsing from URL → Xray outbound JSON, including TLS, auth, FinalMask, and masquerade options
  • XHTTP reliability: allowInsecure is now correctly propagated into stream/TLS settings
  • No core or native changes — this release is Dart-only; no new AAR or Gradle rebuild required beyond a normal dependency refresh

🔄 Compatibility Notes

  • Requirements (unchanged): Android API 21+, Flutter 3.16+; still compatible with using OpenVPN in the same project when configured as in 3.1.0
  • Migration from 3.3.0
    • Update to flutter_v2ray_client: ^3.4.0
    • Run flutter pub get and rebuild your app
    • If you parse Hysteria links, switch to V2ray.parseFromURL() — no manual config assembly needed
    • If you use XHTTP links with allowInsecure=1, re-test connect after upgrade to confirm TLS behavior matches your server

📝 Testing Recommendations

  • Parse and connect with Hysteria v1 (hysteria://, hy://) and Hysteria v2 (hysteria2://, hy2://) share links
  • Verify remark, SNI, auth, and optional FinalMask / masquerade params round-trip correctly
  • Smoke-test XHTTP / SplitHTTP profiles that rely on allowInsecure
  • Confirm existing VMess, VLess, Trojan, and Shadowsocks flows are unaffected

📦 Install

dependencies:
  flutter_v2ray_client: ^3.4.0

🙏 Acknowledgments

Thank you to everyone who uses and reports on Flutter V2Ray Client — your feedback drives these improvements.

Report issues ·
View documentation ·
Changelog