Как поделиться общим кодом между проектами Rust без публикации в crates.io?

Возможно, нет хорошего ответа на этот вопрос, но у меня есть код, которым я хотел бы поделиться между двумя различными проектами RustБЕЗ опубликовать ящик на crates.io.

Код является частным, и я не хочу выпускать его на волю.

 Matthieu M.02 июн. 2016 г., 08:21
Возможно, имеет смысл пересмотреть вопрос, чтобы он более точно соответствовал его цели.
 mattforni02 июн. 2016 г., 21:03
Мне нравится. Спасибо, парни. Очень признателен.
 Shepmaster02 июн. 2016 г., 16:23
Проверьте формулировку, которую я применил к вашему вопросу, я думаю, что это то, что @MatthieuM. и я предлагаю. Не стесняйтесь откатить назад, если считаете, что оно больше не соответствует вашим первоначальным намерениям.
 Matthieu M.02 июн. 2016 г., 08:32
@mattforni: Я имею в виду, что вопрос скорее в том, чтобы «не публиковать на crates.io», чем «не создавать ящик», поэтому лучше сосредоточиться на «немного не публиковать в crates.io»; тогда ответы могут быть сосредоточены на том, как распределить внутреннюю корзину внутри компании, и это действительно то, что вы хотите решить, вместо того, чтобы самим запускать какую-то удаленную синхронизацию копируемых / вставленных файлов или что-то в этом роде :)
 mattforni02 июн. 2016 г., 08:29
Не совсем уверен, что вы имеете в виду @MatthieuM. Это определенно один из способов сделать это. Я полагаю, это не сработаетлюбой коробка, так как она зависит от наличия локального ящика, но она работает в местном смысле.
 Shepmaster02 июн. 2016 г., 05:25
К вашему сведению, это хороший случайX-Y Проблема, Кажется тыдействительно хотите знать, «как я могу поделиться кодом без публичной публикации общего кода», но вопрос касается решения; тот, который технически препятствует моему ответу быть приемлемым. Я сделал ставку на то, что это на самом деле решает вашу корневую проблему. ^ _ ^
 Matthieu M.02 июн. 2016 г., 16:26
@Shepmaster: Это действительно то, о чем я тоже думал; теперь этот вопрос, вероятно, будет представлять интерес для гораздо более широкой аудитории, поскольку я полагаю, что многие организации предпочитают не размещать свой код в Интернете.

Ответы на вопрос(1)

Решение Вопроса

Вам не нужнопубликовать ящик В частности, просто создать ящик (cargo new shared_stuff) затем укажите путь к общему ящику (ям) в зависимом проектеCargo.toml:

[dependency.shared_stuff]
path = "path/to/shared/crate"

Грузовая документация имеет целый раздел о типах зависимостей:

Указание зависимостей от crates.ioУказание зависимостей из репозиториев gitУказание зависимостей пути

Я считаю, что Cargo позволит вам получить счастный Git-репозиторий (например, на Github или другом частном сервисе, таком как GitLab), но я не пробовал это лично. На основании моего поиска вам потребуется предварительно аутентифицированный или настроенный иным образом git, чтобы не требовать интерактивного ввода пароля.

Теоретически возможно создать свойсвоя Реестр ящиков. Я даже не пытался сделать это, но в Cargo есть механизм для обработки.

 mattforni02 июн. 2016 г., 06:39
Большое спасибо Shepmaster!

Ваш ответ на вопрос