Skip to content

Anoous/outline-shadowsocksconfig

 
 

Repository files navigation

ShadowsocksConfig

Build Status

TypeScript library to store Shadowsocks configuration data as well as (de)serialize it to/from SIP002 and legacy base64 URIs. Node.js- and browser-friendly.

References

Fields, validation, and sanitization

Some fields are validated, normalized, and/or sanitized, but not all:

  • host
    • May be an IPv4, IPv6, or hostname.
    • IPv6 :: shorthand is not currently supported.
    • Unicode hostnames are converted to punycode.
    • Hostnames must begin with a character in the set [A-z0-9].
  • port
    • Must be an integer from 0 to 65535.
  • method
    • One of the values specified in shadowsocks_config.ts#METHODS.
  • tag *
    • Only URI encoded/decoded.
  • password *
  • extra *
    • Any additional configuration (e.g. timeout, SIP003 plugin, etc.) may be stored here.

* No sanitization is performed for these fields. Client code is responsible for sanitizing these values when received from untrusted input.

Usage

Please see test/unit/shadowsocks_config.spec.ts for example usage.

Development

First install yarn.

The Gulpfile itself is written in TypeScript. You can run the package script gulp to compile and run it on the fly:

yarn run gulp

Unit Tests

yarn run test

TypeScript Linting

yarn run gulp tslint

About

Serialize Shadowsocks configuration data to and from SIP002 and legacy URI formats.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 100.0%