Overview
Statistics (detailed ones)
	Total 220 packages analyzed and 1082 Go files
	(397013 lines of code) parsed. On average,
	* each Go source file imports 2.84 packages
	  and contains 367 lines of code.
	* each package depends on 6.71 other packages,
	  contains 5.15 source code files, and exports
	  - 5.41 type names,
	  - 2.31 variables,
	  - 21.87 constants,
	  - 8.58 functions.
All Packages (sort packages by:  |  |  | )
1. archive/tar (0) (3004) (13) (5) - implements access to tar archives.
2. archive/zip (0) (2060) (13) (5) - provides support for reading and writing ZIP archives.
3. bufio (35) (1203) (8) (1) - implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O.
4. builtin (219) (262) (1) (5)
5. bytes (55) (1797) (7) (1) - implements functions for the manipulation of byte slices.
6. compress/bzip2 (0) (874) (9) (5) - implements bzip2 decompression.
7. compress/flate (3) (3214) (12) (1) - implements the DEFLATE compressed data format, described in RFC 1951.
8. compress/gzip (3) (542) (13) (2) - implements reading and writing of gzip format compressed files, as specified in RFC 1952.
9. compress/lzw (1) (565) (12) (1) - implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19.
10. compress/zlib (4) (370) (13) (1) - implements reading and writing of zlib format compressed data, as specified in RFC 1950.
11. container/heap (2) (119) (6) (1) - provides heap operations for any type that implements heap.Interface.
12. container/list (3) (238) (1) (2) - implements a doubly linked list.
13. container/ring (0) (141) (1) (5) - implements operations on circular lists.
14. context (14) (567) (9) (1) - defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes.
15. crypto (9) (203) (8) (2) - collects common cryptographic constants.
16. crypto/aes (4) (956) (10) (2) - implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197.
17. crypto/cipher (8) (983) (9) (2) - implements standard block cipher modes that can be wrapped around low-level block cipher implementations.
18. crypto/des (2) (560) (10) (2) - implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3.
19. crypto/dsa (1) (309) (13) (2) - implements the Digital Signature Algorithm, as defined in FIPS 186-3.
20. crypto/ecdsa (2) (389) (15) (2) - implements the Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-3.
21. crypto/ed25519 (2) (215) (14) (2) - implements the Ed25519 signature algorithm.
22. crypto/ed25519/internal/edwards25519 (1) (1817) (10) (3) - implements group logic for the twisted Edwards curve -x^2 + y^2 = 1 + -(121665/121666)*x^2*y^2 This is better known as the Edwards curve equivalent to Curve25519, and is the curve used by the Ed25519 signature scheme.
23. crypto/ed25519/internal/edwards25519/field (1) (705) (9) (4) - implements fast arithmetic modulo 2^255-19.
24. crypto/elliptic (3) (3535) (13) (2) - implements several standard elliptic curves over prime fields.
25. crypto/elliptic/internal/fiat (1) (2053) (6) (3) - implements prime order fields using formally verified algorithms from the Fiat Cryptography project.
26. crypto/hmac (3) (172) (8) (1) - implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198.
27. crypto/internal/randutil (3) (38) (7) (3) - contains internal randomness utilities for various crypto packages.
28. crypto/internal/subtle (4) (35) (2) (3) - implements functions that are often useful in cryptographic code but require careful thought to use correctly.
29. crypto/md5 (3) (334) (9) (1) - implements the MD5 hash algorithm as defined in RFC 1321.
30. crypto/rand (5) (423) (13) (2) - implements a cryptographically secure random number generator.
31. crypto/rc4 (1) (80) (7) (2) - implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.
32. crypto/rsa (2) (1285) (14) (2) - implements RSA encryption as specified in PKCS #1 and RFC 8017.
33. crypto/sha1 (2) (383) (9) (2) - implements the SHA-1 hash algorithm as defined in RFC 3174.
34. crypto/sha256 (2) (419) (9) (2) - implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
35. crypto/sha512 (4) (537) (9) (2) - implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
36. crypto/subtle (10) (61) (1) (2) - implements functions that are often useful in cryptographic code but require careful thought to use correctly.
37. crypto/tls (5) (10791) (17) (1) - partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446.
38. crypto/x509 (2) (5410) (16) (1) - parses X.509-encoded keys and certificates.
39. crypto/x509/pkix (1) (316) (14) (2) - contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP.
40. database/sql (0) (4142) (13) (5) - provides a generic interface around SQL (or SQL-like) databases.
41. database/sql/driver (1) (844) (12) (1) - defines interfaces to be implemented by database drivers as used by package sql.
42. debug/dwarf (4) (4353) (12) (1) - provides access to DWARF debugging information loaded from executable files, as defined in the DWARF 2.0 Standard at http://dwarfstd.org/doc/dwarf-2.0.0.pdf
43. debug/elf (1) (4739) (14) (2) - implements access to ELF object files.
44. debug/gosym (0) (1284) (12) (5) - implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers.
45. debug/macho (0) (1301) (14) (5) - implements access to Mach-O object files.
46. debug/pe (0) (1067) (14) (5) - implements access to PE (Microsoft Windows Portable Executable) files.
47. debug/plan9obj (0) (364) (12) (5) - implements access to Plan 9 a.out object files.
48. embed (0) (422) (10) (5) - provides access to files embedded in the running Go program.
49. embed/internal/embedtest (0) (0) (1) (5)
50. encoding (3) (48) (1) (1) - defines interfaces shared by other packages that convert data to and from byte-level and textual representations.
51. encoding/ascii85 (0) (310) (7) (5) - implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats.
52. encoding/asn1 (3) (2061) (13) (2) - implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690.
53. encoding/base32 (0) (533) (7) (5) - implements base32 encoding as specified by RFC 4648.
54. encoding/base64 (6) (614) (9) (1) - implements base64 encoding as specified by RFC 4648.
55. encoding/binary (35) (876) (8) (1) - implements simple translation between numbers and byte sequences and encoding and decoding of varints.
56. encoding/csv (0) (631) (12) (5) - reads and writes comma-separated values (CSV) files.
57. encoding/gob (1) (4564) (12) (2) - manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver).
58. encoding/hex (2) (326) (12) (2) - implements hexadecimal encoding and decoding.
59. encoding/json (3) (4399) (12) (1) - implements encoding and decoding of JSON as defined in RFC 7159.
60. encoding/pem (2) (340) (10) (2) - implements the PEM data encoding, which originated in Privacy Enhanced Mail.
61. encoding/xml (0) (4247) (12) (5) - implements a simple XML 1.0 parser that understands XML name spaces.
62. errors (100) (172) (5) (1) - implements functions to manipulate errors.
63. expvar (0) (367) (20) (5) - provides a standardized interface to public variables, such as operation counters in servers.
64. flag (4) (1079) (12) (1) - implements command-line flag parsing.
65. fmt (84) (3389) (11) (1) - implements formatted I/O with functions analogous to C's printf and scanf.
66. go/ast (8) (3143) (14) (1) - declares the types used to represent syntax trees for Go packages.
67. go/build (3) (2739) (17) (1) - gathers information about Go packages.
68. go/build/constraint (2) (577) (8) (2) - implements parsing and evaluation of build constraint lines.
69. go/constant (3) (1403) (13) (2) - implements Values representing untyped Go constants and their corresponding operations.
70. go/doc (1) (2699) (15) (2) - extracts source code documentation from a Go AST.
71. go/format (0) (311) (17) (5) - implements standard formatting of Go source.
72. go/importer (0) (122) (19) (5) - provides access to export data importers.
73. go/internal/gccgoimporter (1) (1813) (18) (1) - implements Import for gccgo-generated object files.
74. go/internal/gcimporter (1) (999) (18) (1) - implements Import for gc-generated object files.
75. go/internal/srcimporter (1) (265) (18) (1) - implements importing directly from source files rather than installed packages.
76. go/internal/typeparams (3) (53) (15) (2) - provides functions to work with type parameter data stored in the AST, while these AST changes are guarded by a build constraint.
77. go/parser (4) (3444) (16) (1) - implements a parser for Go source files.
78. go/printer (1) (3458) (16) (1) - implements printing of AST nodes.
79. go/scanner (2) (1111) (13) (2) - implements a scanner for Go source text.
80. go/token (14) (963) (12) (1) - defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates).
81. go/types (4) (17792) (17) (1) - declares the data types and implements the algorithms for type-checking of Go packages.
82. hash (16) (58) (7) (1) - provides interfaces for hash functions.
83. hash/adler32 (1) (134) (8) (2) - implements the Adler-32 checksum.
84. hash/crc32 (3) (581) (8) (1) - implements the 32-bit cyclic redundancy check, or CRC-32, checksum.
85. hash/crc64 (0) (224) (8) (5) - implements the 64-bit cyclic redundancy check, or CRC-64, checksum.
86. hash/fnv (0) (371) (8) (5) - implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo.
87. hash/maphash (0) (263) (3) (5) - provides hash functions on byte sequences.
88. html (2) (2479) (8) (1) - provides functions for escaping and unescaping HTML text.
89. html/template (1) (4385) (14) (2) - (html/template) implements data-driven templates for generating HTML output safe against code injection.
90. image (5) (2083) (9) (1) - implements a basic 2-D image library.
91. image/color (6) (720) (1) (1) - implements a basic color library.
92. image/color/palette (1) (511) (2) (1) - provides standard color palettes.
93. image/draw (1) (730) (11) (1) - provides image composition functions.
94. image/gif (0) (1114) (13) (5) - implements a GIF image decoder and encoder.
95. image/internal/imageutil (2) (276) (10) (1) - contains code shared by image-related packages.
96. image/jpeg (0) (2612) (11) (5) - implements a JPEG image decoder and encoder.
97. image/png (0) (1742) (14) (5) - implements a PNG image decoder and encoder.
98. index/suffixarray (0) (3025) (10) (5) - implements substring search in logarithmic time using an in-memory suffix array.
99. internal/abi (2) (98) (2) (2)
100. internal/buildcfg (1) (342) (12) (2) - provides access to the build configuration described by the current environment.
101. internal/bytealg (7) (304) (2) (2)
102. internal/cfg (1) (66) (1) (1) - holds configuration shared by the Go command and internal/testenv.
103. internal/cpu (11) (397) (1) (2) - implements processor feature detection used by the Go standard library.
104. internal/execabs (4) (70) (13) (2) - is a drop-in replacement for os/exec that requires PATH lookups to find absolute paths.
105. internal/fmtsort (2) (220) (8) (2) - provides a general stable ordering mechanism for maps, on behalf of the fmt and text/template packages.
106. internal/goexperiment (3) (174) (1) (2) - implements support for toolchain experiments.
107. internal/goroot (1) (132) (14) (2)
108. internal/goversion (1) (12) (1) (2)
109. internal/itoa (4) (33) (1) (2)
110. internal/lazyregexp (1) (78) (11) (3) - is a thin wrapper over regexp, allowing the use of global regexp variables without forcing them to be compiled at init.
111. internal/lazytemplate (0) (52) (14) (5) - is a thin wrapper over text/template, allowing the use of global template variables without forcing them to be parsed at init.
112. internal/nettrace (2) (45) (1) (2) - contains internal hooks for tracing activity in the net package.
113. internal/obscuretestdata (0) (50) (11) (5) - contains functionality used by tests to more easily work with testdata that must be obscured primarily due to golang.org/issue/34986.
114. internal/oserror (3) (18) (6) (2) - defines errors values used in the os package.
115. internal/poll (2) (2019) (9) (2) - supports non-blocking I/O on file descriptors with polling.
116. internal/profile (1) (3440) (14) (1) - provides a representation of github.com/google/pprof/proto/profile.proto and methods to encode/decode/merge profiles in this format.
117. internal/race (3) (54) (2) (2) - contains helper functions for manually instrumenting code for the race detector.
118. internal/reflectlite (3) (1524) (4) (2) - implements lightweight version of reflect, not using any package except for "runtime" and "unsafe".
119. internal/singleflight (1) (123) (5) (2) - provides a duplicate function call suppression mechanism.
120. internal/syscall/execenv (2) (20) (8) (2)
121. internal/syscall/unix (3) (195) (8) (2)
122. internal/sysinfo (1) (31) (5) (2) - implements high level hardware information gathering that can be used for debugging or information purposes.
123. internal/testenv (0) (329) (14) (5) - provides information about what functionality is available in different testing environments run by the Go team.
124. internal/testlog (2) (102) (5) (1) - provides a back-channel communication path between tests and package os, so that cmd/go can see which environment variables and files a test consults.
125. internal/trace (0) (2834) (13) (5)
126. internal/unsafeheader (5) (37) (2) (1) - contains header declarations for the Go runtime's slice and string implementations.
127. internal/xcoff (1) (1282) (13) (2) - implements access to XCOFF (Extended Common Object File Format) files.
128. io (103) (958) (6) (1) - provides basic interfaces to I/O primitives.
129. io/fs (15) (815) (9) (1) - defines basic interfaces to a file system.
130. io/ioutil (4) (125) (11) (1) - implements some I/O utility functions.
131. log (11) (380) (12) (1) - implements a simple logging package.
132. log/syslog (0) (366) (13) (5) - provides a simple interface to the system log service.
133. math (27) (5976) (3) (1) - provides basic constants and mathematical functions.
134. math/big (12) (9037) (12) (2) - implements arbitrary-precision arithmetic (big numbers).
135. math/bits (17) (683) (2) (1) - implements bit counting and manipulation functions for the predeclared unsigned integer types.
136. math/cmplx (0) (1130) (4) (5) - provides basic constants and mathematical functions for complex numbers.
137. math/rand (6) (1129) (5) (1) - implements pseudo-random number generators unsuitable for security-sensitive work.
138. mime (3) (1188) (12) (1) - implements parts of the MIME spec.
139. mime/multipart (1) (812) (14) (2) - implements MIME multipart parsing, as defined in RFC 2046.
140. mime/quotedprintable (1) (311) (12) (3) - implements quoted-printable encoding as specified by RFC 2045.
141. net (17) (10751) (11) (1) - provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets.
142. net/http (8) (24069) (19) (1) - provides HTTP client and server implementations.
143. net/http/cgi (1) (628) (20) (1) - implements CGI (Common Gateway Interface) as specified in RFC 3875.
144. net/http/cookiejar (0) (665) (20) (5) - implements an in-memory RFC 6265-compliant http.CookieJar.
145. net/http/fcgi (0) (665) (21) (5) - implements the FastCGI protocol.
146. net/http/httptest (0) (733) (20) (5) - provides utilities for HTTP testing.
147. net/http/httptrace (1) (255) (18) (2) - provides mechanisms to trace the events within HTTP client requests.
148. net/http/httputil (0) (1433) (20) (5) - provides HTTP utility functions, complementing the more common ones in the net/http package.
149. net/http/internal (2) (255) (12) (1) - contains HTTP internals shared by net/http and net/http/httputil.
150. net/http/internal/ascii (3) (61) (8) (1)
151. net/http/internal/testcert (1) (46) (8) (1) - contains a test-only localhost certificate.
152. net/http/pprof (0) (449) (20) (5) - serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.
153. net/internal/socktest (0) (495) (12) (5) - provides utilities for socket testing.
154. net/mail (0) (838) (13) (5) - implements parsing of mail messages.
155. net/rpc (1) (1133) (20) (1) - provides access to the exported methods of an object across a network or other I/O connection.
156. net/rpc/jsonrpc (0) (258) (21) (5) - implements a JSON-RPC 1.0 ClientCodec and ServerCodec for the rpc package.
157. net/smtp (0) (544) (18) (5) - implements the Simple Mail Transfer Protocol as defined in RFC 5321.
158. net/textproto (9) (1247) (12) (1) - implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP.
159. net/url (8) (1244) (12) (1) - parses URLs and implements query escaping.
160. os (51) (3801) (10) (1) - provides a platform-independent interface to operating system functionality.
161. os/exec (5) (874) (12) (1) - runs external commands.
162. os/signal (0) (624) (11) (5) - implements access to incoming signals.
163. os/user (1) (489) (12) (1) - allows user account lookups by name or id.
164. path (10) (464) (6) (1) - implements utility routines for manipulating slash-separated paths.
165. path/filepath (18) (1169) (11) (1) - implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.
166. plugin (0) (90) (6) (5) - implements loading and symbol resolution of Go plugins.
167. reflect (23) (7437) (7) (1) - implements run-time reflection, allowing a program to manipulate objects with arbitrary types.
168. reflect/internal/example1 (0) (6) (1) (5)
169. reflect/internal/example2 (0) (6) (1) (5)
170. regexp (6) (2703) (9) (1) - implements regular expression search.
171. regexp/syntax (1) (3315) (8) (2) - parses regular expressions into parse trees and compiles parse trees into programs.
172. runtime (36) (55084) (3) (1) - contains operations that interact with Go's runtime system, such as functions to control goroutines.
173. runtime/debug (1) (336) (11) (2) - contains facilities for programs to debug themselves while they are running.
174. runtime/internal/atomic (1) (185) (2) (2)
175. runtime/internal/math (1) (40) (2) (2)
176. runtime/internal/sys (2) (372) (1) (2) - package sys contains system- and configuration- and architecture-specific constants used by the runtime.
177. runtime/metrics (0) (555) (4) (5) - provides a stable interface to access implementation-defined metrics exported by the Go runtime.
178. runtime/pprof (2) (2233) (14) (1) - writes runtime profiling data in the format expected by the pprof visualization tool.
179. runtime/race (0) (9) (1) (5) - implements data race detection logic.
180. runtime/trace (2) (353) (12) (1) - contains facilities for programs to generate traces for the Go execution tracer.
181. sort (43) (961) (5) (1) - provides primitives for sorting slices and user-defined collections.
182. strconv (59) (5228) (6) (1) - implements conversions to and from string representations of basic data types.
183. strings (76) (2108) (7) (1) - implements simple functions to manipulate UTF-8 encoded strings.
184. sync (70) (1764) (4) (1) - provides basic synchronization primitives such as mutual exclusion locks.
185. sync/atomic (18) (337) (2) (1) - provides low-level atomic memory primitives useful for implementing synchronization algorithms.
186. syscall (15) (7975) (7) (1) - contains an interface to the low-level operating system primitives.
187. testing (2) (3133) (13) (1) - provides support for automated testing of Go packages.
188. testing/fstest (0) (863) (14) (5) - implements support for testing implementations and users of file systems.
189. testing/internal/testdeps (0) (128) (15) (5) - provides access to dependencies needed by test execution.
190. testing/iotest (1) (357) (13) (1) - implements Readers and Writers useful mainly for testing.
191. testing/quick (0) (385) (13) (5) - implements utility functions to help with black box testing.
192. text/scanner (1) (793) (12) (2) - provides a scanner and tokenizer for UTF-8-encoded text.
193. text/tabwriter (2) (609) (7) (2) - implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text.
194. text/template (3) (2706) (13) (1) - implements data-driven templates for generating textual output.
195. text/template/parse (2) (2399) (12) (2) - builds parse trees for templates as defined by text/template and html/template.
196. time (36) (4788) (8) (1) - provides functionality for measuring and displaying time.
197. time/tzdata (0) (7198) (8) (5) - provides an embedded copy of the timezone database.
198. unicode (26) (8595) (1) (1) - provides data and functions to test some properties of Unicode code points.
199. unicode/utf16 (3) (108) (1) (2) - implements encoding and decoding of UTF-16 sequences.
200. unicode/utf8 (46) (552) (1) (1) - implements functions and constants to support text encoded in UTF-8.
201. unsafe (30) (233) (1) (1) - contains operations that step around the type safety of Go programs.
202. vendor/golang.org/x/crypto/chacha20 (1) (454) (10) (3) - implements the ChaCha20 and XChaCha20 encryption algorithms as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.
203. vendor/golang.org/x/crypto/chacha20poly1305 (1) (348) (13) (2) - implements the ChaCha20-Poly1305 AEAD and its extended nonce variant XChaCha20-Poly1305, as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.
204. vendor/golang.org/x/crypto/cryptobyte (3) (1302) (14) (2) - contains types that help with parsing and constructing length-prefixed, binary messages, including ASN.1 DER.
205. vendor/golang.org/x/crypto/cryptobyte/asn1 (3) (46) (1) (2) - contains supporting types for parsing and building ASN.1 messages with the cryptobyte package.
206. vendor/golang.org/x/crypto/curve25519 (1) (1164) (12) (2) - provides an implementation of the X25519 function, which performs scalar multiplication on the elliptic curve known as Curve25519.
207. vendor/golang.org/x/crypto/hkdf (1) (93) (9) (2) - implements the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869.
208. vendor/golang.org/x/crypto/internal/subtle (2) (33) (2) (3) - implements functions that are often useful in cryptographic code but require careful thought to use correctly.
209. vendor/golang.org/x/crypto/poly1305 (1) (479) (9) (3) - implements Poly1305 one-time message authentication code as specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
210. vendor/golang.org/x/net/dns/dnsmessage (1) (2664) (6) (2) - provides a mostly RFC 1035 compliant implementation of DNS message packing and unpacking.
211. vendor/golang.org/x/net/http/httpguts (4) (398) (16) (1) - provides functions implementing various details of the HTTP specification.
212. vendor/golang.org/x/net/http/httpproxy (1) (368) (16) (2) - provides support for HTTP proxy determination based on environment variables, as provided by net/http's ProxyFromEnvironment function.
213. vendor/golang.org/x/net/http2/hpack (1) (1452) (12) (2) - implements HPACK, a compression format for efficiently representing HTTP header fields in the context of HTTP/2.
214. vendor/golang.org/x/net/idna (3) (6002) (15) (2) - implements IDNA2008 using the compatibility processing defined by UTS (Unicode Technical Standard) #46, which defines a standard to deal with the transition from IDNA2003.
215. vendor/golang.org/x/net/nettest (0) (833) (14) (5) - provides utilities for network testing.
216. vendor/golang.org/x/sys/cpu (1) (580) (12) (3) - implements processor feature detection for various CPU architectures.
217. vendor/golang.org/x/text/secure/bidirule (1) (348) (14) (3) - implements the Bidi Rule defined by RFC 5893.
218. vendor/golang.org/x/text/transform (2) (709) (8) (4) - provides reader and writer wrappers that transform the bytes passing through as well as various transformations.
219. vendor/golang.org/x/text/unicode/bidi (2) (3985) (13) (3) - contains functionality for bidirectional text support.
220. vendor/golang.org/x/text/unicode/norm (1) (9993) (12) (3) - contains types and functions for normalizing Unicode strings.