1
0
mirror of https://github.com/medigor/example-native-api-rs.git synced 2025-06-08 23:36:11 +02:00

дополнил readme

This commit is contained in:
medigor 2024-10-29 22:23:14 +03:00
parent cf2a16063f
commit d8476441b6

View File

@ -17,7 +17,7 @@
Одним из вариантов было использовать [cxx](https://github.com/dtolnay/cxx) или подобные библиотеки. Это также бы потребовало использовать msvc.
Другой вариант - вручную реализовать виртуальные таблицы, именно этот вариант и реализован.
На [godbolt](https://godbolt.org/z/KM3jaWMWs) можно посмотреть, как выглядят виртуальные таблицы для разных компиляторов. Виртуальные таблицы *msvc* отличаются от *gcc*/*clang*, при этом *gcc* и *clang* используют одинаковое ABI. Виртуальные таблицы реализованы в объеме достаточном для создания компоненты.
На [godbolt](https://godbolt.org/z/KM3jaWMWs) можно посмотреть, как выглядят виртуальные таблицы для разных компиляторов. Виртуальные таблицы *msvc* отличаются от *gcc*/*clang*, при этом *gcc* и *clang* используют одинаковое ABI. Виртуальные таблицы реализованы в объеме достаточном для создания компоненты. Также, для тестирования с помощью [valgrind](https://valgrind.org/) и подобных утилит, разработана [библиотека тестирования](https://crates.io/crates/addin1c-test), выполненные тесты позволяют убедиться в надежности технологии.
## Описание файлов
### пример компоненты:
@ -58,16 +58,15 @@
"env": {"DISPLAY": ":1"}
```
Для разработки и тестирования также подходит [Учебная версия 1С](https://online.1c.ru/catalog/free/learning.php), но версия для windows только x32.
При разработке использовался rust последней стабильной версии.
## Поддержка платформ
У меня в проде не используется, но в тестах использовал, проблем не замечено, также производные разработки тоже успешно используются.
- Windows x64 - тестировал, работает и gnu и msvc.
- Windows x32 - тестировал, работает и gnu и msvc.
- Linux x64 - тестировал, работает.
- Linux x32 - не тестировал, думаю что должно работать.
Компоненты дополнительно протестированы с помощью [valgrind](https://valgrind.org/) на `linux` и [drmemory](https://drmemory.org/) на `windows`.
- Windows x64 - протестировано, работает и gnu и msvc.
- Windows x32 - протестировано, работает и gnu и msvc.
- Linux x64 - протестировано, работает.
- Linux x32 - не тестировал, думаю что должно работать, но платформа устарела.
- MacOS - не тестировал, думаю должно работать, т.к. работает Linux x64.
- Android/iOS/веб-клиент - не реализовано и планов таких нет.
- Android/iOS/веб-клиент - не тестировал, не реализовано и планов таких нет.
## Сборка без установки Rust в контейнере
Собрать можно в контейнере с помощью скриптов: [build-with-docker-linux](build-with-docker-linux) и [build-with-docker-windows](build-with-docker-windows), требуется установленный `podman` или `docker`. Скрипты не предназначены для CI, а необходимы лишь для одноразовой сборки, чтобы пощупать технологию.