xray_core_flutter 0.8.0
xray_core_flutter: ^0.8.0 copied to clipboard
Strongly typed Flutter/Dart models for creating, validating, and exporting Xray JSON configs.
0.8.0 #
- Synced typed config models and parity checks with Xray-core
infra/confv26.10.10. - Added DNS nameserver IDs, DNS/routing Lua scripts, TLS
useSystemCA, and MASQUE WARP transport settings. - Updated XDNS JSON support to
namesand resolveraddrs, including Core's default record types; legacy typed resolver constructors remain readable for source compatibility. - Added 26.10.10 round-trip and validation regression coverage.
0.7.0 #
- Synced typed config models and loader parity checks with Xray-core
infra/confv26.9.30. - Added MASQUE inbound/outbound settings, users, protocol constructors, and transport settings; added XDrive transport with all options and raw templates.
- Added TUN
autoSystemDnsToGatewayandautoSystemWfpBlockLeak. - Breaking: replaced
XdnswithXDNS, structuredXDNSDomainentries andXDNSResolverentries with typed TCP/UDP settings; addedextraPoll. Legacy string domains/resolvers must be migrated to the new object schema. - Breaking: removed
WireGuardConfig.domainStrategyandUDPHop.sockopt. UDPHop now uses stream socket options, supports outerdialerProxy, and accepts omitted/zero intervals (Core supplies its 30-second default). - Validate MASQUE transport/TLS pairing, mux restrictions, addresses, users,
paths and headers; validate XDrive services, TUN leak option names, XDNS
resolvers/extraPoll and Noise
expexpressions. Platform-specific TUN prerequisites remain Core checks on the target device. - Reject invalid XDNS domain limits, record types, EDNS0 and insufficient payload capacity; require domains on both sides and resolvers on clients. Preserve Core's zero defaults and integer conversions without rewriting JSON.
- Reject normalized MASQUE hosts that Core cannot build, missing XDrive service settings, and REALITY on unsupported transports (including XDrive).
- Keep MASQUE outbound transport separate from non-MASQUE inbounds in the example; expose and retain MASQUE inbound TLS certificates. XDrive selections now use a compatible security layer instead of retaining REALITY.
- Updated the visual example for MASQUE, XDrive, structured XDNS and TUN options; regenerated Freezed models and added config and form regression coverage.
- Show recoverable errors for malformed or incorrectly typed MASQUE, XDrive and XDNS JSON inputs in the example, disabling copy until corrected.
- Reject forbidden ASCII characters in MASQUE hosts and keep opaque XDrive template JSON outside numeric option validation.
- Check XDNS client resolver address syntax and ports; match Go whitespace and hex-prefix handling in Noise expressions. Reject known finalmask types on the wrong transport and remove the example's unsupported UDP fragment option.
- Validate MASQUE address pools against Core initialization requirements: reject subnet/broadcast addresses, mapped IPv6 and pools without client addresses. Match Go host/port syntax without Dart URI normalization.
- Require XICMP to be the last UDP mask on both clients and servers, including nested download streams; keep it last when exporting example form selections.
0.6.0 #
-
Respect XHTTP
sockopt.penetratewhen validating download streams. Reject UDPHop wrapping a stream withsockopt.dialerProxy, while allowing proxy options inside UDPHop's own settings. -
Recognize VLESS reverse outbounds' dynamic inbound tags in routing. Reject sniffing on inbound users' reverse configs and export it only for reverse outbounds in the example.
-
Preserve socket options for HTTP, SOCKS and WireGuard proxy chains in the example. Validate nested XHTTP download streams and UDPHop dialer proxy references, respecting XHTTP alias and raw extra precedence.
-
Recognize VLESS inbound users' reverse tags in dialer proxy, routing and balancer references, respecting
clientsprecedence overusers. -
Reject removed root-level
reverseconfigs and unsupported domain listeners; preserve environment references and socket paths for target-device checks. -
Remove the example's legacy reverse controls and expose routing
localOS, WireGuardremoteDNS, MasqueradexForwarded, the four new QUIC flags, and custom Blackhole responses in the form. -
Validate required IP listener ports with TUN and Unix socket exceptions.
-
Validate public VLESS/Trojan transport security for simplified and full JSON settings using Core v26.9.9's private IP/domain rules; defer environment addresses to Core on the target device.
-
Added
json_serializableand migrated eight simple models to generated JSON conversion, preserving omitted nulls, JSON aliases and strict integer parsing. -
Parity checks now read generated JSON field maps while retaining handwritten conversion for union-shaped and protocol-dependent settings.
-
Corrected the SDK minimum to Dart 3.9 to match the existing json_annotation dependency and support generated serialization syntax.
-
Synced typed config models with Xray-core
infra/confv26.9.9. -
Added routing
localOS, WireGuardremoteDNS, RealmipModeand typedportMapping, MasqueradexForwarded, and the new QUIC flags. -
Added typed
BlackholeResponse.customwith base64customResponseData. -
Breaking: replaced
UdpHopwith the finalmaskUDPHopmodel. UseMask(type: 'udphop', settings: UDPHop(...))inFinalMask.udp, withmode,remotePorts,remoteIPs,interval, and optionalsockopt. -
Breaking: removed
QuicParamsConfig.udpHopand the retired Hysteriacongestion,up,down, andudpHopfields. Configure congestion and bandwidth underFinalMask.quicParamsand hopping underFinalMask.udp. -
Breaking: removed
ProxyConfig;proxySettingsis now a raw JSON map for importing legacy configs and is rejected by validation. Migrate proxy chains tostreamSettings.sockopt.dialerProxy. -
Validate dialer proxy references and reject freedom
addressPortStrategy. -
Handle empty dialer proxy tags and case-insensitive freedom protocol names.
-
Validate custom blackhole Base64 and UDP hop modes, IP/CIDR values and intervals for inbound and outbound streams.
-
Reject UDP hop masks in TCP, mismatched typed settings, and interval endpoints outside the supported 5 to 2147483647 second range.
-
Include Realm's external
PortMappingstruct in parity checks and test missing models, missing fields and unavailable source files. -
Removed retired controls from the example; use its socket options and finalmask editors for the supported configuration paths.
0.5.0 #
- Focused the public package on Flutter/Dart config models, JSON conversion, and validation.
- Synced the typed Dart config models with Xray-core
infra/confv26.7.28. - Replaced XMC finalmask usernames with signed profile metadata and added the TUN device description field.
- Added the canonical
package:xray_core_flutter/xray_core_flutter.dartlibrary entrypoint.
0.3.1 #
- Synced the typed Dart config models with Xray-core
infra/confv26.7.11. - Added coverage for the new root
env, streammethod, SplitHTTP session ID, Loopback sniffing, WireGuard peer metadata, Fragment multi-range, and XMC finalmask fields. - Removed fields no longer present in Xray-core
infra/confv26.7.11, including Shadowsocks UoT options, WireGuard workers, and removed TLS ECH force query / peer-name-list options.
0.3.0 #
- Synced the typed Dart config models with Xray-core
infra/confv26.6.1. - Added coverage for newly exposed protocol, transport, app, finalmask, and helper config fields.
- Expanded Go parity checks to validate JSON tags, per-struct JSON shape, unexpected Dart keys, and config creator loader IDs.
- Added broader realistic config round-trip and contract tests for Xray-compatible JSON output.
- Updated the example into a visual Xray config builder app.
0.1.0 #
- Initial open source release.
- Added strongly typed Dart models for Xray
infra/confJSON configuration. - Added helper constructors for common inbound, outbound, transport, DNS, and routing workflows.
- Added validation helpers for common SDK configuration mistakes.
- Added Go config parity checks and realistic configuration round-trip tests.