A node.js port of [uwcwidth](https://github.com/Z4JC/uwcwidth), a fast function for determining a string's display width
npm install display-widthA node.js port of uwcwidth, a fast function for determining a string's display width
That code is a port of POSIX wcswidth, a standard function for counting the number of columns occupied by a string, and is derived from musl libc
``js
import { wcswidth } from "display-width";
// wcswidth("๐ฉโโค๏ธโ๐จ") == 2
console.log(wcswidth("\u{1F469}\u{200D}\u{2764}\u{FE0F}\u{200D}\u{1F468}"));
`
`
>> wcswidth("cafeฬ") == 4
>> "cafeฬ".length == 5
>> wcswidth("โ ๏ธ warning") == 9
>> "โ ๏ธ warning".length == 10
>> wcswidth("๐จโ๐จโ๐งโ๐ง") == 2
>> "๐จโ๐จโ๐งโ๐ง".length == 11
>> wcswidth("๐ฉโโค๏ธโ๐จ") == 2
>> "๐ฉโโค๏ธโ๐จ".length == 8
`
yes! Compared to string-width, it's about 33x faster
```
โโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโ
โ (index) โ Task Name โ ops/sec โ Average Time (ns) โ Margin โ Samples โ
โโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโค
โ 0 โ 'display-width' โ '188,426' โ 5307.115321339439 โ 'ยฑ1.55%' โ 18843 โ
โ 1 โ 'string-width' โ '5,586' โ 179008.73345259373 โ 'ยฑ11.73%' โ 559 โ
โโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโ
see the bench directory for details
no!
no!
no! I ported the code and all the tests from
uwcwidth though, so I have good vibes about
it