172 похожих чатов

Вопрос новичка: Где хостить приложения на раст под Windows ? В настоящее

время у меня порядка 20 сервисов написанных на с++ и на с# работают под Windows и все они "живут" в Windows services. Есть желание переписать сервисы с# на rust-е. Где потом мне эти сервисы хостить ?

28 ответов

17 просмотров

что такое windows services?

Chu- Автор вопроса
Alexander "SonnySlave" Zaitsev
что такое windows services?

Войдите в Таск мэнжджер под Виндов. Вкладка Службы. Там увидите список активных Сервисов - Служб.

Chu
Войдите в Таск мэнжджер под Виндов. Вкладка Служб...

ну это же просто вызов пары системных функцй для регистрации. То что сишарп/плюсцы автоматом компиляют с поддержкой этой ерунды не значит что руками нельзя сделать. Возможно есть уже готовые либы. Если нет надо писать

Chu
Войдите в Таск мэнжджер под Виндов. Вкладка Служб...

значит и растовые сервисы можешь там хостить

Αλεχ Zhukovsky
ну это же просто вызов пары системных функцй для р...

Либы хз, но вот просто биндиги к win32 api я видел. Этого должно быть достаточно.

Пашечка
Либы хз, но вот просто биндиги к win32 api я видел...

нет, недостаточно. там базовые типы есть которые осуществляют регистрацию/удаление, старт/стоп джобы и т.п. Но ничего невозможного в том что написать это нет офк

Пашечка
Либы хз, но вот просто биндиги к win32 api я видел...

нужен аналог вот такого: https://github.com/SublimeText/Pywin32/blob/master/lib/x32/win32/lib/win32serviceutil.py#L747

Αλεχ Zhukovsky
нет, недостаточно. там базовые типы есть которые о...

я не в курсе, а на виндовых сервисах обязательно сам процесс должен что-то там дергать и так далее? Нельзя сделать аля по аналогии с systemd: сделать простое описание сервиса в текстовом файле и зарегистрировать его в системе?

Alexander "SonnySlave" Zaitsev
я не в курсе, а на виндовых сервисах обязательно с...

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

Αλεχ Zhukovsky
нет, нельзя сделать просто. бинарь сам себя должен...

А кто запрещает написать бинарник-хелпер, который себя куда надо регистрирует, а потом подпроцессом запускает нужную программу?

Mikail Bagishov
А кто запрещает написать бинарник-хелпер, который ...

по-моему там надо ещё коллбеки правильно регистрировать но это не точно. Я никогда так низко не спускался: работал через готовые интерфейсы где ты просто наследуешь утил-класс где всё есть и просто определяешь onstart/onstop

Chu- Автор вопроса
Αλεχ Zhukovsky
нет, недостаточно. там базовые типы есть которые о...

Конечно можно контейнер самописный для приложений раст написать. Но как то это не системно получается. Зоопарк. Здесь службы виндовс стандартные работают, здесь самописный контейнер с каким нибудь Рестом для управления раст-приложениями (старт, стоп, рестарт, апдэйт), здесь "рыбу заворачиваем" ☺ .

Chu
Конечно можно контейнер самописный для приложений ...

а по пути глядишь и докер перепишешь на раст - красота же!

Chu- Автор вопроса
Chu- Автор вопроса
Alexander "SonnySlave" Zaitsev
а по пути глядишь и докер перепишешь на раст - кра...

Получается кроме как под с++ переписать выхода нет ?

Alexander "SonnySlave" Zaitsev
а по пути глядишь и докер перепишешь на раст - кра...

Вот и решена проблема отсутствия биндов под сервисы винды

Chu- Автор вопроса
Alexander "SonnySlave" Zaitsev
не понял вопроса, честно говоря

Сервисы, которые на с# написаны, переписать на с++. Но у меня эти сервисы на С# Refleсtion активно юзают. Так что засада ...

https://github.com/rozanski/srvstart

red75prime
https://github.com/rozanski/srvstart

// кхкхкхкостылькх

Chu
Сервисы, которые на с# написаны, переписать на с++...

хех. изначально у тебя желание именно на ржаст переписать было. Кажется, что в твоём случае по имеющимся данным просто вообще ничего трогать не надо и оставить свои шарповые сервисы как есть. Нечего бесполезным RIIR на ровном месте заниматься

Пух
// кхкхкхкостылькх

Если ничем нетривиальным на рестарте заниматься не надо, то сойдёт

Chu- Автор вопроса
Alexander "SonnySlave" Zaitsev
хех. изначально у тебя желание именно на ржаст пер...

Ну хочется же новые технологии пощупать в действии, а не хеллоу ворлд на расте в Консоли запускать и при этом ощущать себя Наполеном ...

Chu
Ну хочется же новые технологии пощупать в действии...

тогда непонятно, зачем переписывать на С++ вместо раста

Пашечка
Либы хз, но вот просто биндиги к win32 api я видел...

https://crates.io/crates/windows Сами m$ft поддерживают крейт с биндингами ко всему что только есть в winapi

Jøhn Đøꝩsøn
https://crates.io/crates/windows Сами m$ft поддер...

О, нифигасе. Пркльна. А хорошо поддерживают, или как всегда у них?)

Пашечка
О, нифигасе. Пркльна. А хорошо поддерживают, или к...

Ну, эти биндинги автоматически сгенерированы по некоторому описанию, как и для других языков

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта