Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 25.08.13 22:38
Оценка:
Приветствую!

Сабж^

Дока находится на гитхабе, как и сам проект. И, чтоб не синхронизировать постоянные изменения, сюда я доку постить не стану.

Собственно — Protoctor

Хотелось бы получить пожелания/идеи/рекомендации/фидбэк.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re: Protoctor - communication protocol constructor
От: Danchik Украина  
Дата: 02.09.13 15:32
Оценка:
Здравствуйте, niXman, Вы писали:


X>Приветствую!


X>Сабж^


X>Дока находится на гитхабе, как и сам проект. И, чтоб не синхронизировать постоянные изменения, сюда я доку постить не стану.


X>Собственно — Protoctor


X>Хотелось бы получить пожелания/идеи/рекомендации/фидбэк.


Чем оно лучше этого? http://thrift.apache.org/
Re[2]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 02.09.13 15:37
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Чем оно лучше этого? http://thrift.apache.org/

тем же, чем оно лучше protobuf:
1. нет никакого отдельно придуманного синтаксиса для описания сообщений.
2. нет отдельной стадии кодогенерации.

ну, возможно, и еще чем-то лучше. я не в вникал ни в protobuf, ни в thrift.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[3]: Protoctor - communication protocol constructor
От: _NN_ www.nemerleweb.com
Дата: 04.09.13 09:16
Оценка:
Здравствуйте, niXman, Вы писали:

Как раз благодаря наличию отдельной стадии генерации thrifft и protobuf позволяют писать программы на разных языках.
Если планируется чисто С++ , тогда конечно это не так удобно как препроцессор, зато в будущем не нужно будет ничего переписывать если другие языки понадобятся.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 04.09.13 09:34
Оценка:
ну да, пока что нет цели в реализации под другие ЯП.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[5]: Protoctor - communication protocol constructor
От: _NN_ www.nemerleweb.com
Дата: 04.09.13 15:00
Оценка:
Здравствуйте, niXman, Вы писали:

X>ну да, пока что нет цели в реализации под другие ЯП.


Т.е. единственный плюс это не требуется генерация кода.
Хотя тут еще как сказать, ошибки препроцессора не всегда легко понять и починить.

Хорошо бы сделать сравнение с thrift и protobuf , чтобы действительно понять стоит ли перейти.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[6]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 04.09.13 16:48
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Хорошо бы сделать сравнение с thrift и protobuf , чтобы действительно понять стоит ли перейти.

я не знаком ни с тем, ни с тем.

опиши задачу, я попробую спрогнозировать резонность перехода
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[3]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 04.09.13 16:58
Оценка:
Здравствуйте, niXman, Вы писали:

X>1. нет никакого отдельно придуманного синтаксиса для описания сообщений.

X>2. нет отдельной стадии кодогенерации.
3. самый быстрый инвокинг из всех, что я когда либо видел.
если посмотреть на пример сгенерированного, то становится ясно, что для инвокинга используется всего две инструкции cmp и две jmp
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[4]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 04.09.13 17:02
Оценка:
http://stackoverflow.com/questions/3012011/switch-case-assembly-level-code
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[7]: Protoctor - communication protocol constructor
От: _NN_ www.nemerleweb.com
Дата: 04.09.13 19:53
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, _NN_, Вы писали:


_NN>>Хорошо бы сделать сравнение с thrift и protobuf , чтобы действительно понять стоит ли перейти.

X>я не знаком ни с тем, ни с тем.

X>опиши задачу, я попробую спрогнозировать резонность перехода


Сейчас как бы не актуально.
Я в свое время итоге выбрал protobuf , потому что thrift требует boost-а (небольшие организационные проблемы его внести).
Передаю данные из .NET в C++ , все работает замечательно.
Посему protoctor изначально бы не подошел.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[8]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 04.09.13 19:55
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Посему protoctor изначально бы не подошел.

простите, но я как-то совсем не уловил, из чего это следует?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[9]: Protoctor - communication protocol constructor
От: _NN_ www.nemerleweb.com
Дата: 04.09.13 19:56
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, _NN_, Вы писали:


_NN>>Посему protoctor изначально бы не подошел.

X>простите, но я как-то совсем не уловил, из чего это следует?

А как в .NET создавать ту же структуру данных ? Ручками ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[10]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 04.09.13 20:00
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>А как в .NET создавать ту же структуру данных ?

ааа ,вот о чем речь...

_NN>Ручками ?

ну...как вариант =)

структура пакета на самом деле очень проста.
1. один байт — CALL_ID
2. один байт — VERSION_ID
3. четыре байта — BODY_SIZE
4. бади, собственной персоной

=)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[8]: OFF: Protoctor - communication protocol constructor
От: fddima  
Дата: 04.09.13 20:01
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Сейчас как бы не актуально.

_NN>Я в свое время итоге выбрал protobuf , потому что thrift требует boost-а (небольшие организационные проблемы его внести).
Ну протобуф в отношении количества понимаемых типов из коробки — вроде бы довольно аскетичен? Или я ошибаюсь?
Я в принципе по необходимости рисовал генератор сам (правда для дотнета, но это ж дело техники), ибо работать приходилось со структурами сделанными с фантазией! (микс из порядка байт, представление дат — тоже разное, сложные типы данных типа словарей (map и multimap), блоки данных с CRC, строки фиксированной ширины дополненные пробелами и/или нулями, ну и вышак — определние типа структуры через лукэхид). Это своего рода такой кошмарчик, который удалось систематизировать. После этого, в последний раз когда я смотрел на протобуф — выглядит игрушкой. Ну хотя в нём мне в принципе всё нравится. А возможностей thrift — не знаю. Узнал о нём гораздо позже, смысла даже смотреть не было.
Re[9]: OFF: Protoctor - communication protocol constructor
От: _NN_ www.nemerleweb.com
Дата: 04.09.13 20:05
Оценка:
Здравствуйте, fddima, Вы писали:

F>Здравствуйте, _NN_, Вы писали:


_NN>>Сейчас как бы не актуально.

_NN>>Я в свое время итоге выбрал protobuf , потому что thrift требует boost-а (небольшие организационные проблемы его внести).
F> Ну протобуф в отношении количества понимаемых типов из коробки — вроде бы довольно аскетичен? Или я ошибаюсь?
Это да, но не смертельно. Можно легко заменить.
Thrift намного более продвинутый в этом плане, поэтому если есть возможность лучше брать его.

F> Я в принципе по необходимости рисовал генератор сам (правда для дотнета, но это ж дело техники), ибо работать приходилось со структурами сделанными с фантазией! (микс из порядка байт, представление дат — тоже разное, сложные типы данных типа словарей (map и multimap), блоки данных с CRC, строки фиксированной ширины дополненные пробелами и/или нулями, ну и вышак — определние типа структуры через лукэхид). Это своего рода такой кошмарчик, который удалось систематизировать. После этого, в последний раз когда я смотрел на протобуф — выглядит игрушкой.

В случае когда формат задан, то конечно тут нужен конструктор форматов , типа: Python Construct.
Но это совсем другая тема

F>Ну хотя в нём мне в принципе всё нравится. А возможностей thrift — не знаю. Узнал о нём гораздо позже, смысла даже смотреть не было.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[8]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 25.09.13 15:26
Оценка:
проект был переименован в YARMI(Yet Another RMI)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[6]: Protoctor - communication protocol constructor
От: wander  
Дата: 15.12.13 13:22
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Т.е. единственный плюс это не требуется генерация кода.


У protobuf есть возможность обойтись без генерации кода. Вся нужная метаинформация доступна в рантайме.
Re[7]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 15.12.13 16:27
Оценка:
Здравствуйте, wander, Вы писали:

W>У protobuf есть возможность обойтись без генерации кода. Вся нужная метаинформация доступна в рантайме.

т.е. его кодогенератор не генерит код?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[8]: Protoctor - communication protocol constructor
От: wander  
Дата: 16.12.13 19:16
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, wander, Вы писали:


W>>У protobuf есть возможность обойтись без генерации кода. Вся нужная метаинформация доступна в рантайме.

X>т.е. его кодогенератор не генерит код?

Есть два способа. С генерацией и без.
Re[9]: Protoctor - communication protocol constructor
От: niXman Ниоткуда https://github.com/niXman
Дата: 27.01.14 09:33
Оценка: 3 (1)
Здравствуйте, wander, Вы писали:

не могли бы вы привести пример, как использовать protobuf так, чтоб можно было сериализовать переменные без кодогенерации.
т.е. к примеру я имею такую структуру:
struct type {
   int v;
   std::string s;
   std::pair<std::string, std::map<int, std::string>> m;
};

доку читал, но ничего подобного не обнаружил.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.