github.com/sagernet/sing-box@v1.9.0-rc.20/docs/migration.md (about)

     1  ---
     2  icon: material/arrange-bring-forward
     3  ---
     4  
     5  ## 1.9.0
     6  
     7  !!! warning "Unstable"
     8  
     9      This version is still under development, and the following migration guide may be changed in the future.
    10  
    11  ### `domain_suffix` behavior update
    12  
    13  For historical reasons, sing-box's `domain_suffix` rule matches literal prefixes instead of the same as other projects.
    14  
    15  sing-box 1.9.0 modifies the behavior of `domain_suffix`: If the rule value is prefixed with `.`,
    16  the behavior is unchanged, otherwise it matches `(domain|.+\.domain)` instead.
    17  
    18  ### `process_path` format update on Windows
    19  
    20  The `process_path` rule of sing-box is inherited from Clash,
    21  the original code uses the local system's path format (e.g. `\Device\HarddiskVolume1\folder\program.exe`),
    22  but when the device has multiple disks, the HarddiskVolume serial number is not stable.
    23  
    24  sing-box 1.9.0 make QueryFullProcessImageNameW output a Win32 path (such as `C:\folder\program.exe`),
    25  which will disrupt the existing `process_path` use cases in Windows.
    26  
    27  ## 1.8.0
    28  
    29  ### :material-close-box: Migrate cache file from Clash API to independent options
    30  
    31  !!! info "References"
    32  
    33      [Clash API](/configuration/experimental/clash-api/) / 
    34      [Cache File](/configuration/experimental/cache-file/)
    35  
    36  === ":material-card-remove: Deprecated"
    37  
    38      ```json
    39      {
    40        "experimental": {
    41          "clash_api": {
    42            "cache_file": "cache.db", // default value
    43            "cahce_id": "my_profile2",
    44            "store_mode": true,
    45            "store_selected": true,
    46            "store_fakeip": true
    47          }
    48        }
    49      }
    50      ```
    51  
    52  === ":material-card-multiple: New"
    53  
    54      ```json
    55      {
    56        "experimental"  : {
    57          "cache_file": {
    58            "enabled": true,
    59            "path": "cache.db", // default value
    60            "cache_id": "my_profile2",
    61            "store_fakeip": true
    62          }
    63        }
    64      }
    65      ```
    66  
    67  ### :material-checkbox-intermediate: Migrate GeoIP to rule sets
    68  
    69  !!! info "References"
    70  
    71      [GeoIP](/configuration/route/geoip/) / 
    72      [Route](/configuration/route/) / 
    73      [Route Rule](/configuration/route/rule/) / 
    74      [DNS Rule](/configuration/dns/rule/) / 
    75      [Rule Set](/configuration/rule-set/)
    76  
    77  !!! tip
    78  
    79      `sing-box geoip` commands can help you convert custom GeoIP into rule sets.
    80  
    81  === ":material-card-remove: Deprecated"
    82  
    83      ```json
    84      {
    85        "route": {
    86          "rules": [
    87            {
    88              "geoip": "private",
    89              "outbound": "direct"
    90            },
    91            {
    92              "geoip": "cn",
    93              "outbound": "direct"
    94            },
    95            {
    96              "source_geoip": "cn",
    97              "outbound": "block"
    98            }
    99          ],
   100          "geoip": {
   101            "download_detour": "proxy"
   102          }
   103        }
   104      }
   105      ```
   106  
   107  === ":material-card-multiple: New"
   108  
   109      ```json
   110      {
   111        "route": {
   112          "rules": [
   113            {
   114              "ip_is_private": true,
   115              "outbound": "direct"
   116            },
   117            {
   118              "rule_set": "geoip-cn",
   119              "outbound": "direct"
   120            },
   121            {
   122              "rule_set": "geoip-us",
   123              "rule_set_ipcidr_match_source": true,
   124              "outbound": "block"
   125            }
   126          ],
   127          "rule_set": [
   128            {
   129              "tag": "geoip-cn",
   130              "type": "remote",
   131              "format": "binary",
   132              "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs",
   133              "download_detour": "proxy"
   134            },
   135            {
   136              "tag": "geoip-us",
   137              "type": "remote",
   138              "format": "binary",
   139              "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-us.srs",
   140              "download_detour": "proxy"
   141            }
   142          ]
   143        },
   144        "experimental": {
   145          "cache_file": {
   146            "enabled": true // required to save Rule Set cache
   147          }
   148        }
   149      }
   150      ```
   151  
   152  ### :material-checkbox-intermediate: Migrate Geosite to rule sets
   153  
   154  !!! info "References"
   155  
   156      [Geosite](/configuration/route/geosite/) / 
   157      [Route](/configuration/route/) / 
   158      [Route Rule](/configuration/route/rule/) / 
   159      [DNS Rule](/configuration/dns/rule/) / 
   160      [Rule Set](/configuration/rule-set/)
   161  
   162  !!! tip
   163  
   164      `sing-box geosite` commands can help you convert custom Geosite into rule sets.
   165  
   166  === ":material-card-remove: Deprecated"
   167  
   168      ```json
   169      {
   170        "route": {
   171          "rules": [
   172            {
   173              "geosite": "cn",
   174              "outbound": "direct"
   175            }
   176          ],
   177          "geosite": {
   178            "download_detour": "proxy"
   179          }
   180        }
   181      }
   182      ```
   183  
   184  === ":material-card-multiple: New"
   185  
   186      ```json
   187      {
   188        "route": {
   189          "rules": [
   190            {
   191              "rule_set": "geosite-cn",
   192              "outbound": "direct"
   193            }
   194          ],
   195          "rule_set": [
   196            {
   197              "tag": "geosite-cn",
   198              "type": "remote",
   199              "format": "binary",
   200              "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-cn.srs",
   201              "download_detour": "proxy"
   202            }
   203          ]
   204        },
   205        "experimental": {
   206          "cache_file": {
   207            "enabled": true // required to save Rule Set cache
   208          }
   209        }
   210      }
   211      ```