LINUX.ORG.RU

Сокрытие исходников - подскажите RPC-решение для пайтоновской программы

 , , , ,


0

1

Есть функция на python, исходники которой необходимо закрыть от внешнего пользователя. Рассматриваем вариант решения с web-сервером, предоставляющим api типа «объект на входе-объект на выходе». Выполняться вызов при этом может до 10 минут.

Вопрос - подскажите решение для огранизации такого вот «сервиса»? Смотрим на https://grpc.io/

UPD: вопрос, надо или не надо закрывать исходники - решается не мной и, к сожалению, обсуждению не подлежит. Вопрос к техническим специалистам, которые в состоянии работать в режиме «дано менять нельзя» (полезный, кстати, в реальной жизни режим).

★★★

Последнее исправление: omegatype (всего исправлений: 1)

Выполняться вызов при этом может до 10 минут.

Я бы посмотрел в сторону MQ.

hippi90 ★★★★★
()

Смотрим на https://grpc.io/

за такие сайты последнее время хочется убивать.

а по теме - перепишите функцию на сишешку-плюсплюшешчку и исходник как-бы скроется. Даже если внутри дёргать питоновские api :-)

Зато у потребителей не будет зависимости от внешнего сервиса, который в критический момент то-ли работает, то-ли нет.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Это вариант, да, но это должно и дорого. Не хочется «платить» временем и силами только за то, чтобы избавить конечного потребителя от зависимости, у нас сейчас вообще тестовые прогоны, не продакшен как бы еще. Завтра они пойму, что им это не нужно, а мы владывались... пока они «думают» - пусть висит зависимость в виде нашего сервака.

omegatype ★★★
() автор топика
Ответ на: комментарий от omegatype

Если что грпц поддерживает параллельные запросы. Но авторизации там вроде нет из коробки. Через головы чтоли мутить нада.

anonymous
()
Ответ на: комментарий от omegatype

ещё вариант, но на уровне хака и для любителей-фанатов: можно сохранить байт-код. Если есть кто-то, кто сильно прётся от питона, то можете сделать.

(версионно-зависимо:)При первом вызове строиться байт-код, а у некоторых даже вызывается jit. И всю эту халабуду по идее можно сохранить,загрузить и повторно использовать.

MKuznetsov ★★★★★
()

вопрос, надо или не надо закрывать исходники - решается не мной и, к сожалению, обсуждению не подлежит

Будьте готовы к тому что тут не подлежат помощи проприетарщики.

Вопрос к техническим специалистам, которые в состоянии работать в режиме «дано менять нельзя»

Это не специалисты, это обезьяны.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Обезьяна тут ты, потому что требуешь исходники того, даже не знаешь чего, автор темы не пояснил. Лишь бы были.

Понимаю исходники библиотеки или системной программы а также драйвера, но вы уже упоротые клянчите исходники от всего что надо и не надо.

anonymous
()

Можно воспользоваться обфускатором. Типа https://pypi.org/project/pyarmor/

Можно и через вебсервер решать, да. Можно через вебсокеты данные гнать, вариантов масса

SZT ★★★★★
()
Ответ на: комментарий от anonymous

Что же вам, двачерам, так на дваче не сидится? Зачем вы тащите своё говно на другие сайты?

anonymous
()
Ответ на: комментарий от anonymous

А ты не знаешь как это бывает? В час икс когда прошлые программисты уже давно на гоа ты приходишь и видишь, что всё закрыто прогеры от этой тулзы уволились леи пять назад, а поправить их программу хочется. Но исходников сцуко нет. И переписывать полностью софт написанный пятью в одного? Те кто закрывают исходники, особенно на внутренних проектах должны перестать это делать!

anonymous
()

compileall ?

anonymous
()

А зачем grpc, если можно JSON POST, и потом GET'ом полить результат?

10 минут это явно не то время ради которого имеет смысл заморачиваться с бинарным протоколом.

И приятный бонус - читабельные логи «сервиса».

А grpc - это protobuff в подарок, который еще поддерживать придется

anonymous
()
Ответ на: комментарий от MKuznetsov

Даже если внутри дёргать питоновские api :-)

Если питоновский код не имеет каких-то особо хитрых зависимостей или конструкций, то ничего и переписывать не надо. Имея foo.py, получаем на выходе бинарный foo с зависимостью от libpython3.7m.so.

$ cython3 -v --embed -o foo.c foo.py
$ gcc -Wall -O2 -o foo foo.c -I/usr/include/python3.7m -lpython3.7m

gag ★★★★★
()

Я не понял, вот открывать исходники это как бы voluntary действие обычно. Т.е. для того чтобы исходники остались закрыты, просто ничего не надо предпринимать. В чем вопрос?

lovesan ★★
()

Можно заюзать aws lambda и поставить клиента на бабки не только за разработку функции, но и за процессорное время, расходуемое на ее выполнение)

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.