Search
Write a publication
Pull to refresh

Comments 13

я решил написать библиотеку своей мечты
А чем вам protobuf не угодил?
Плохо искал, наверное. Буду смотреть, что там есть для JavaScript.
Protobuf плох обязательным наличием схемы.
Насколько я понял, все вышеперечисленные решения — это вариация бинарного JSON-формата для представления данных, кроме protobuf. Не могу поспорить в ограниченности функционала этих решений.
Но мне было нужно что-то более простое и специфичное. В своей библиотечке я хотел без посторонней помощи прочитать байтовое представление «сишной» структуры или массива(получаемого просто с помощью memcpy) в JavaScript объекте или типизированном массиве.
Как решаются вопросы ссылочных типов, выравнивания структур и разных размеров типов на разных хостах? Или предлагаемое решение прибито гвоздями к x86?
Там написано в документации, что необходимо обязательное 1-битное выравнивание, ссылочных типов и указателей нет.
Я не тестировал на других архитектурах, только x86(x86_64). Думаю, что на других архитетурах нет смысла запускать «тормознутые» веб-двигатели.
Спасибо за полезный комментарий.
По поводу разных размеров типов на разных хостах.
Тут ответственность лежит на разработчике C++, объявляющем в своём коде структуры или массивы. При объявлении он должен исходить из того, чтобы его 32-битный int должен быть именно такого размера, а не 16 или 8 бит. А если не уверен, то пусть делает #ifdef.
JS-код же может гарантировать, что ctype.int32 будет именно 32-битный.
Библиотека не работает с моим веб-двигателем
Веб-двигателем?
Термин. Теперь понятно. По-русски это обычно называют браузерным движком, а в случае варианта ответа в вашем опросе, вероятно, было бы достаточно просто «браузер».
Sign up to leave a comment.

Articles