Перейти к содержимому

Упаковка и распаковка бинарных данных в JavaScript

29/12/2009

В текущем стандарте JavaScript (и в Node.js) к сожалению нет поддержки упаковки/распаковки двоичных данных — аналогов pack() и unpack() из PHP. Т.к. в Node есть возможность соединяться с TCP-серверами и самому создавать их, там не помешала бы возможность обмениваться данными в каком либо двоичном протоколе. В частности, в моём последнем опыте (соединение Node.js и Sphinx) потребовалось посылать и получать именно двоичные данные.

К счастью, я нашёл библиотеку php.js, в которой функции pack/unpack уже портированы на JavaScript. Так что скоро, думаю, будет пост об использовании Sphinx из Node. Пока получилось только соединиться с сервером и обменяться версиями протокола.

2 комментария
  1. Слушай, наверное стоит написать модуль на С++, на сколько это нужно в плане производительности?

    • Вообще я думаю что v8 и так должен неплохо оптимизировать бинарные операции. Я, честно говоря, затрудняюсь сказать насколько C++ будет быстрее. Можешь посмотреть код bits.js у меня — там одни >> и &.

Оставьте комментарий