Ipfs: Привязки IPFS API

Созданный на 19 авг. 2015  ·  76Комментарии  ·  Источник: ipfs/ipfs

Мы достигли довольно стабильного API, и теперь IPFS работает довольно надежно. Люди уже используют IPFS с других языков, в первую очередь JS через https://www.npmjs.com/package/ipfs-api

Были разговоры об организации усилий по получению привязок API для большего количества языков. Может быть, мы можем начать с:

API очень прост - это просто REST-подобный HTTP + JSON API. Есть ли у нас волонтеры, которые помогут с языками, перечисленными выше (или другими)? Пожалуйста, ответьте здесь, если сможете уделить много времени. (А пока я подготовлю руководящий документ для разработчиков.) Тогда мы сможем привлечь к работе группу людей одновременно, что ускорит процесс. И тогда мы сможем выпустить их все за один присест!

Самый полезный комментарий

Есть ли какой-нибудь интерес к реализации API в Dart и / или Elixir? Я знаю, что ни один из языков не указан специально, но лично я бы использовал оба для различных приложений.

Все 76 Комментарий

Могу предложить обзор кода для Ruby

У меня есть начало привязок Rust API .

Мне было бы интересно поработать над привязками Ruby, но я еще недостаточно знаю о проекте, поэтому мне потребуются некоторые рекомендации.

C / C ++ Я хочу стать волонтером.

Я хочу добавить реализацию для Юлии .

Спасибо @lgierth @rschulman @Fryie @PayasR и @rened - я быстро сделаю док здесь.

А пока ознакомьтесь с https://github.com/ipfs/node-ipfs-api, чтобы узнать, как это работает. Ключевые части находятся в:

  • https://github.com/ipfs/node-ipfs-api/blob/master/src/index.js - методы api. не полный, но достаточно хороший для большинства простых случаев использования
  • https://github.com/ipfs/node-ipfs-api/blob/master/src/request-api.js - отправка каждого HTTP-запроса на сервер API. (этот код, вероятно, можно было бы немного почистить, но он прямолинейный).
  • https://github.com/ipfs/node-ipfs-api/blob/master/src/get-files-stream.js - файловый поток. это очень специфично для js, но в основном мы используем один многостраничный поток, где каждая часть имеет заголовок, определяющий целевое имя файла. Мы также можем реализовать поддержку tar-stream (а вскоре и car-stream) вместо go-ipfs, если это проще для людей (у меня уже есть 50% кода для этого).

@jbenet, возможно, обновить OP ссылками на существующие проекты привязки? ipfs / py-ipfs и т. д.

@cryptix py-ipfs Думаю, это не привязки, а стремление стать имплером? может кто-то сможет заработать ipfs/py-ipfs-api

Спасибо всем, кто помогает! ОК,

  • Я реализовал флаг ipfs --api <multiaddr> <cmd> для нацеливания на удаленного демона ( см. этот PR ) - который здесь очень полезен для проверки: target nc .
  • я сделал очень простой предварительный документ: https://github.com/ipfs/go-ipfs/blob/master/docs/implement-api-bindings.md
  • Следующий шаг - создать спецификацию уценки для всего api go-ipfs на основе кода (может ли кто-нибудь нанести удар?)

но уже можно запустить, учитывая, что node-ipfs-api настолько тривиально прост.

Я начинаю реализацию Java. Отправлю ссылку, как только у меня будет что-то нетривиальное.

API Blueprint - это спецификация уценки для описания API. Он имеет концептуальную концепцию конечных точек, типов запросов, ответов и прочего.

Это подмножество уценки, поэтому оно будет отображаться всегда, но apiary.io обеспечивает более сложное отображение.

Например, это уценка, а это отрисовка для чертежа, над которым я недавно работал.

Я просмотрел индекс node-api и предполагаю, что знаю имена конечных точек. Я до сих пор ничего не знаю о модели данных.

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

Моя реализация Java находится здесь: https://github.com/ianopolous/IPFS-API-Java Я стремлюсь сделать ее автономной и простой.

Только что закончили элементарные привязки Python: https://github.com/amstocker/python-ipfs-api

Будем очень признательны за любой совет или тестирование. Он уже протестирован на моем локальном компьютере (Ubuntu 14.04.2 / Python 2.7.6).

Я ожидаю , что делать медленный , но устойчивый прогресс на переплетах Руби здесь . :)

Привязки @amstocker python https://github.com/ipfs/python-ipfs-api/ (спасибо!). Если кто-то еще хочет, чтобы их переехали, дайте мне знать. (сообществу проще сотрудничать в одном наборе привязок)

@dysbulic рад помочь с моделью данных API. может зайти на #ipfs или задать вопросы на https://github.com/ipfs/go-ipfs или https://github.com/ipfs/node-ipfs-api ?

@Fryie coolio, я постараюсь взглянуть на то, что у вас уже есть, но если вы хотите, чтобы я посмотрел на что-то конкретное, не стесняйтесь пинговать меня в IRC

У меня начало привязки API C ++ здесь: https://github.com/MichaelMure/Arbore-qt/tree/master/src/ipfs

Это не совсем универсальное решение и основано на Qt, но все же ...

Здравствуйте, я начал создавать оболочку на Scala для HTTP-API IPFS здесь: https://github.com/cboddy/scala-ipfs-api/

Если кто-то еще заинтересован в участии (или у него есть запросы или предложения), пожалуйста, дайте мне знать, иначе я обновлю, как только он будет завершен.

Хорошо выглядеть! @MichaelMure и @cboddy сообщают мне, когда он достигает определенного уровня завершения, и мы можем переместить их в ipfs/ org (если хотите)

@jbenet привязки Scala / JVM теперь завершены для основных команд, перечисленных в

ipfs --help

message, наряду с большинством команд структуры данных и некоторым описанием других. Остальное должно быть прямо на следующей неделе с более формальными интеграционными тестами, пожалуйста, не стесняйтесь добавлять его в ipfs / тем временем.

@cboddy, это отличная новость !! вы хотите передать репо в ipfs org, как мы делаем для других? Я добавил вас в организацию - просто передайте репо пользователю ipfs (или мне, если это не сработает). Затем я позабочусь о том, чтобы у вас был администратор и так далее.

@jbenet спасибо и конечно, сделали!

Я обновил список в первом сообщении, включив в него новые потрясающие привязки API для Python, Java и Scala! Большое спасибо всем, кто участвовал! : clap:: clap:

Мы должны сделать наши привязки Go такими же красивыми ... @whyrusleeping

Я сделаю Lua!

Я сделаю Lua!

Большое спасибо! Lmk, когда у вас есть репо для размещения в ipfs org! :)

Я работаю над привязками Swift API.

Любые забавные примеры одного лайнера с использованием cURL, которые я могу запустить прямо из командной строки (Linux)?

Посмотрев на ipfs --help ipfs add --help и т. Д., В сочетании с
документ API (https://ipfs.io/docs/api/), и вы должны понимать HTTP API.

Может, а может и не вписаться в ваше "веселое" требование :)

Искренне,
Виктор Бьелкхольм
(+34) 672 15 90 89

В четверг, 5 ноября 2015 г., в 8:24, bitcoinmeetups.org < [email protected]

написал:

Любые забавные примеры одного лайнера с использованием cURL, которые я могу запустить прямо из команды
линия (Linux)?

-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment -153976500.

Я работал над привязкой API в PHP . На данный момент это только подмножество команд IPFS, которые нам нужны для ipfs.pics, но пингуйте меня, если вам нужно больше, и я добавлю их!

@cloutier, если хотите, мы можем сделать вам репо в ipfs org под названием php-ipfs-api и вы можете поместить туда код

@whyrusleeping Я хотел бы опубликовать его с такой же сильной лицензией с

Я завершил первый проход привязок Swift API . Не стесняйтесь комментировать и использовать для своих потрясающих проектов IPFS для iOS / OS X и переходить в ipfs org :)

@whyrusleeping Я хотел бы опубликовать его с такой же сильной лицензией с

Хм. Я не определился с этим, но буду сильно склоняться к тому, чтобы все было разрешено ipfs org, чтобы пользователи случайно не ошибались.

@cloutier, любопытно, зачем нужна сильная копия для привязок? это строго исключает коммерческое использование, место, где пользователям больше всего нужны привязки.

ортогонален этому - если подумать об этом - нам определенно понадобятся официальные привязки в php, которые разрешают (MIT / BSD / Apache2). если @cloutier не хочет делать их такими, нам понадобится другой.

@cloutier @jbenet Будет ли LGPL разумным компромиссом?

Нет, AFAIK LGPL несовместим с MIT / BSD / Apache2.0

Я подумал об этом еще немного, и было бы лучше иметь его под слабой лицензией, чтобы получить больше проектов с использованием открытого стандарта, такого как IPFS, и, следовательно, лучше для бесплатного программного обеспечения в целом. Apache 2.0 был бы хорош.

@davidar LGPL может быть хорошей идеей. Это позволило бы встраивать большое количество лицензий (включая MIT и даже проприетарный код), если доступен исходный код хотя бы привязки, но PHP - особый случай, поскольку он почти только запускается на серверах, а условие авторского лева - нет. запускается по коду сервера . Можно также выпустить его под разрешающей лицензией.

@jbenet Для AGPL не означает некоммерческий . Мне не нужно строгое авторское лево по техническим причинам, но я хочу его по политическим причинам.

большое спасибо @cloutier!

@cloutier Да, я думаю, что авторское

С https://www.gnu.org/licenses/license-recommendations.html

Некоторые библиотеки реализуют бесплатные стандарты, которые конкурируют с ограниченными стандартами, такими как Ogg Vorbis (который конкурирует со звуком MP3) и WebM (который конкурирует с видео MPEG-4). Для этих проектов широкое использование кода жизненно важно для продвижения идеи бесплатного программного обеспечения и приносит больше пользы, чем авторское лево в коде проекта.

В этих особых случаях мы рекомендуем лицензию Apache License 2.0.

@davidar Очень хорошо

У меня начало привязок PHP: https://github.com/cloutier/php-ipfs-api

По сути, это тот же код, который мы запускаем в производственной среде на ipfs.pics, но повторно лицензированный под Apache 2.0.

cc @mekarpeles

Спасибо, что, если я объединю эти клиентские библиотеки API в файл внутри ipfs / ipfs / clients (и аналогично ipfs / ipfs / implementation), который мы сможем поддерживать в актуальном состоянии?

Вероятно, это также будет лучше для людей, пытающихся выполнить поиск в клиентских библиотеках (чем эта проблема). Мы можем добавить ссылку на эту проблему в документе, чтобы люди могли участвовать в обсуждении.

Кто-нибудь против?

C # /. NET здесь . Я использую этот проект для работы, так что он будет поддерживаться / улучшаться как минимум год или два.

Всем привет и в частности @PayasR @jbenet @MichaelMure ,

Я реализовал привязки API C ++ здесь: https://github.com/vasild/cpp-ipfs-api и только что получил тестовое покрытие до 100% после некоторых боев с Трэвисом и Комбинезоном.

На данный момент реализован набор методов API block, config, files, generic, object, pin и swarm (https://github.com/ipfs/interface-ipfs-core/tree/master/API). Остается только dag и dht, которые я постараюсь сделать в ближайшее время.

Cheerz!

Всем привет! Надеюсь, у вас все хорошо! Мне было интересно, есть ли планы сделать привязку API в Visual Basic .NET?

Была ссылка на реализацию .NET .

@ Coder206 См. Https://github.com/richardschneider/net-ipfs-core и https://github.com/richardschneider/net-ipfs-api.

Он написан на C #, но должен быть доступен из VB.Net.

@jbenet Я бы хотел посвятить свой php-клиент ipfs https://github.com/digitalkaoz/php-ipfs. его api завершен, охватывает оба http + cli "драйвера", автоматически сгенерирован из официальных документов и хорошо протестирован (по крайней мере, через несколько дней;))

он лицензирован под MIT , так что, думаю, проблем нет.

я бы хотел, чтобы мое репо было передано в организацию ipfs ...

@digitalkaoz , это https://github.com/ipfs/ipfs#api -client-libraries?

Кстати, теперь у клиентских библиотек HTTP есть отличный логотип. Я пиарю все, что было - https://github.com/ipfs/ipfs#api -client-libraries - если вашего там не было, вот оно:

image

Кроме того, если вы сделали реализацию, рассмотрите возможность ссылки на нее на https://github.com/ipfs/ipfs#api-client-libraries и оставьте заметку о ее полноте :)

@diasdavid, давай добавим в список клиентских библиотек :)

@digitalkaoz дерзай :)

@diasdavid как насчет перемещения https://github.com/vasild/cpp-ipfs-api на https://github.com/ipfs/cpp-ipfs-api? В прошлый раз он был завершен, но у меня не было времени проверить, были ли добавлены новые функции API после этого.

@vasild, мы можем это сделать. Вы все еще можете продолжать быть капитаном этой библиотеки?

@diasdavid Недавно я сменил работу и не смог найти достаточно времени, чтобы подарить cpp-ipfs-api немного любви (например, проверить, добавлены ли новые функции в основной API, и реализовать их, если это так). Перемещение его в / ipfs / повысит его видимость, поэтому, возможно, другие тоже внесут свой вклад. OTOH, если вы не хотите принимать код, написанный одним разработчиком, который не работает над ним активно, тогда, возможно, было бы лучше оставить его в / vasild /. ИМО, было бы лучше переместить его в / ipfs /, и в конце концов я найду время, чтобы поиграть с ним дальше. Что вы думаете?

@vasild понял. Я думаю, что лучший подход - последовать вашему предложению и описать состояние реализации в README + открытые проблемы для известных проблем + приветствовать новых участников. Все это + переезд на IPFS орг.

Я упомяну клиентские библиотеки IPFS в следующем IPFS All Hands :)

@diasdavid https://github.com/vasild/cpp-ipfs-api/commit/b1c557e7a1165ea38d20d5806a35979bfc0a2575 ладно? (нет известных проблем!)

@diasdavid открыл PR для списка клиентской библиотеки

На Mi., 23. авг.2017, 17:37 Василь Димов [email protected] написал:

@diasdavid https://github.com/diasdavid vasild / cpp-ipfs-api @ b1c557e
https://github.com/vasild/cpp-ipfs-api/commit/b1c557e7a1165ea38d20d5806a35979bfc0a2575
Ok? (нет известных проблем!)

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-324374905 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/AAR611I4GWv1OJkoJNiLvIVJXQnwE_rzks5sbEcygaJpZM4FuFH9
.

@jbenet привет! Было бы здорово заменить текущую ссылку на ржавчину на новую, потому что она не обновлялась уже 2 года .. rust-ipfs-api
Моя реализация еще сырая, но она работает!

@rmnoff отлично! Пожалуйста, откройте PR, чтобы включить его в список. (Пример https://github.com/ipfs/ipfs/pull/265)

@vasild Мне нравится :)

@diasdavid готово! :)

Есть ли какой-нибудь интерес к реализации API в Dart и / или Elixir? Я знаю, что ни один из языков не указан специально, но лично я бы использовал оба для различных приложений.

Чем больше, тем лучше :)

Сб, 7 октября 2017 г., 11:00 Tensor-Programming [email protected]
написал:

Есть ли какой-нибудь интерес к реализации API в Dart и / или Elixir? я
не знаю, что ни один из языков специально не указан, но лично я бы использовал
оба для разных приложений.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-334917974 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/ABL4HIInzOWvWTAIWjeRqR_mRuz22HC7ks5spy-ZgaJpZM4FuFH9
.

Я немного продвинулся (около 65-70% команд) в elixir API. Если вы хотите взглянуть на это и посмотреть, подходит ли он для нюхания; Буду премного благодарен. Мне все еще нужно создать многие команды, а также документацию и тестовый модуль (и circleCI). Тем не менее, я смог преодолеть большинство сложных неровностей (поддержка многостраничных форм и т. Д.), Так что на данный момент это всего лишь вопрос дней / недель, пока у меня не будет реализована довольно приличная функциональность.

Вот репо: https://github.com/tensor-programming/Elixir-Ipfs-Api

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

А как насчет привязки elm-ipfs, кто-нибудь заинтересован в том, чтобы это стало возможным?

При необходимости может написать привязку Perl.

haskell Я хочу стать волонтером.

Я могу написать Objective-C, есть ли список работы, которую нужно сделать?

См. Https://github.com/ipfs/ipfs#api -client-libraries.

Как насчет статуса разработки мобильных приложений с использованием IPFS?
Есть несколько проектов для Android-приложения, что неплохо.
Главный шаг - сначала запустить демон ipfs на мобильном телефоне, выполнить загрузку файлов и т. Д.
Я пытаюсь создать мобильное приложение на основе текущего приложения для Android и могу извлечь их в SDK для Android.
На мой взгляд, если мы сможем заставить больше разработчиков или компаний хранить и извлекать свои данные в системе ipfs в мобильных приложениях, то вполне вероятно, что эту систему смогут использовать многие обычные пользователи.
У вас есть какие-то планы по этому поводу или есть какие-то дискуссии по этому поводу?
@jbenet

Api ipfs objc?

да, клиент и сервер могут разговаривать, а не с файлом, что будет больше
эффективный.

TomorJM [email protected] 2018 9 13 日 周四 下午 3:45 写道 :

Api ipfs objc?

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-420914945 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/ABPHvCWs76QmmERDY7oqtQOuSPJ2eF54ks5uag0JgaJpZM4FuFH9
.

Некоторое время назад я написал еще один набор привязок Common Lisp (другой отказался работать на любом из моих компьютеров даже после некоторой игры и не поддерживал pubsub).

Это прямо здесь - тоже есть зеркало GitHub.

Всем спасибо, мы убираем этот репозиторий. Если у вас есть дополнительные взносы, сообщите нам об этом на https://discuss.ipfs.io .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

nbingham1 picture nbingham1  ·  19Комментарии

Miserlou picture Miserlou  ·  6Комментарии

haarts picture haarts  ·  4Комментарии

amiyatulu picture amiyatulu  ·  3Комментарии

myqq0000 picture myqq0000  ·  5Комментарии