Ipfs: IPFS API 绑定

创建于 2015-08-19  ·  76评论  ·  资料来源: ipfs/ipfs

我们已经达到了一个非常稳定的 API,并且 IPFS 现在运行非常可靠。 人们已经在使用其他语言的 IPFS,主要是通过https://www.npmjs.com/package/ipfs-api 的JS

一直有人在谈论组织努力以获得更多语言的 API 绑定。 也许我们可以从:

API 非常简单——它只是一个类似于 REST 的 HTTP + JSON API。 我们是否有志愿者帮助使用上面列出的语言(或其他语言)? 如果您可以投入大量时间,请在此处回复。 (在此期间,我会为实施者准备一份指南文档。)然后我们可以让一群人同时进行这项工作,这将使其进展得更快。 然后我们可以一口气释放它们!

最有用的评论

是否对 API 的 Dart 和/或 Elixir 实现感兴趣? 我知道这两种语言都没有特别列出,但我个人会在各种不同的应用程序中使用这两种语言。

所有76条评论

我可以为 Ruby 提供代码审查

我有Rust API 绑定的开始。

我会对 Ruby 绑定感兴趣,但我对这个项目还不够了解,所以需要一些指导。

C/C++ 我愿意做志愿者。

我想为Julia添加一个实现。

谢谢@lgierth @rschulman @Fryie @PayasR@rened——我会在这里跟进一个快速码头。

同时,请查看https://github.com/ipfs/node-ipfs-api以了解其工作原理。 关键部分在:

@jbenet可能会使用指向现有绑定项目的链接更新 OP? ipfs/py-ipfs

@cryptix py-ipfs我认为不是绑定,而是打算成为一个实现? 也许有人可以赚ipfs/py-ipfs-api

感谢所有帮助的人! 好的,

  • 我已经实现了ipfs --api <multiaddr> <cmd>标志来定位远程守护进程(参见这个 PR )——这对于检查非常有用: target nc
  • 我做了一个非常简单的初步文档: https :
  • 下一步是根据代码生成整个 go-ipfs api 的降价规范(有人可以尝试一下吗?)

但是已经可以开始了,因为node-ipfs-api非常简单。

我正在开始一个 Java 实现。 一旦我有一些重要的事情,就会发布一个链接。

API Blueprint是用于描述 API 的降价规范。 它具有端点和请求类型以及响应等的概念化。

它是 markdown 的一个子集,所以它总是会渲染,但是apiary.io提供了更复杂的显示。

例如,这是降价这是我最近在处理的蓝图

我已经仔细阅读了 node-api 索引并假设我知道端点名称。 我仍然对数据模型一无所知。

如果任何了解数据结构和交互的人有兴趣对此进行配对,我很乐意做出贡献,但我对系统的了解还不够好,无法做到这一点。

我的 Java 实现将在这里进行: https :

刚刚完成基本的 python 绑定: https :

任何建议或测试将不胜感激。 它已经在我的本地机器(Ubuntu 14.04.2/Python 2.7.6)上进行了一些测试。

我期待做的Ruby绑定缓慢但稳步的进展在这里。 :)

@amstocker python 绑定移至https://github.com/ipfs/python-ipfs-api/ (谢谢!)。 如果其他人也想搬家,请告诉我。 (社区更容易在一组绑定中进行协作)

@dysbulic很高兴为 API 数据模型提供帮助。 也许可以访问 #ipfs 或在https://github.com/ipfs/go-ipfshttps://github.com/ipfs/node-ipfs-api上提问?

@Fryie coolio,我会试着看看你已经拥有的东西,但如果你想让我看看特别的东西,请随时在 IRC 上 ping 我

我在这里开始了 C++ API 绑定: https :

它不是真正的通用和基于 Qt 的,但仍然......

你好,我已经开始在 Scala 中为 IPFS HTTP-API 进行包装: https :

如果其他人有兴趣贡献(或有请求或建议),请告诉我,否则我会在完成后更新。

看起来不错! @MichaelMure@cboddy在达到一定程度时通知我,我们可以将它们移入ipfs/组织(如果需要)

@jbenet Scala/JVM 绑定现在已经完成了

ipfs --help

消息,以及大多数数据结构命令和一些其他命令的覆盖范围。 其余的应该在下周直接进行更正式的集成测试,同时请随时将其添加到 ipfs/。

@cboddy这是个好消息!! 您想像我们为其他人所做的那样将 repo 转移到ipfs组织吗? 我已将您添加到组织中——只需将 repo 转移给ipfs用户(如果它不起作用,或者我)。 然后我会确保你有管理员等等。

@jbenet谢谢,当然,已经完成了!

我已经更新了第一篇文章中的列表,以包含很棒的新 Python、Java 和 Scala api 绑定! 非常感谢所有参与的人! :鼓掌:

我们应该让我们的 Go 绑定更好...... @whyrusleeping

我会做路亚!

我会做路亚!

万分感谢! 当你有一个 repo 放入 ipfs 组织时 Lmk! :)

我正在研究 Swift API 绑定。

使用 cURL 的任何有趣的单行示例我可以直接从命令行(Linux)运行吗?

通过查看ipfs --help ipfs add --help等,结合
API 文档( https://ipfs.io/docs/api/ ),您应该能够理解 HTTP API。

可能符合也可能不符合您的“有趣”要求:)

真挚地,
维克多·别克霍尔姆
(+34) 672 15 90 89

2015 年 11 月 5 日星期四上午 8:24,bitcoinmeetups.org < [email protected]

写道:

任何使用 cURL 的有趣的单行示例我都可以直接从命令运行
线(Linux)?


直接回复此邮件或在 GitHub 上查看
https://github.com/ipfs/ipfs/issues/83#issuecomment -153976500。

我一直在研究 PHP 中

@cloutier如果你愿意,我们可以在 ipfs 组织下为你创建一个名为php-ipfs-api的仓库,你可以把代码放在那里

@whyrusleeping我想用同样强大的 copyleft 许可证发布它,我知道这可能会引起一些争议。 你没事吧?

我现在已经完成了Swift API 绑定的第一遍。 随意评论并用于您出色的 iOS/OS X IPFS 项目并进入 ipfs 组织 :)

@whyrusleeping我想用同样强大的 copyleft 许可证发布它,我知道这可能会引起一些争议。 你没事吧?

嗯。 我对此尚未决定,但强烈倾向于将所有内容都保留在 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 是一个特殊情况,因为它几乎只在服务器上运行,并且copyleft 子句不是在服务器的代码上触发。 不妨在许可许可下发布它。

@jbenet作为记录, AGPL 并不意味着非商业。 出于技术原因,我不需要强大的 copyleft,但出于政治原因我想要它。

非常感谢@cloutier!

@cloutier是的,我认为 copyleft 对于 _on top of_ IPFS(如 ipfs.pics)的应用程序更有意义,而不是像这样的低级库。

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

一些库实现了与受限标准竞争的免费标准,例如 Ogg Vorbis(与 MP3 音频竞争)和 WebM(与 MPEG-4 视频竞争)。 对于这些项目,代码的广泛使用对于推进自由软件事业至关重要,并且比项目代码上的 copyleft 做得更好。

在这些特殊情况下,我们推荐使用 Apache License 2.0。

@davidar 很好地总结了我一直在想的东西,谢谢! :+1:

我有 PHP 绑定的开始: https :

它基本上与我们在 ipfs.pics 上运行的代码相同,但在 Apache 2.0 下重新许可。

抄送@mekarpeles

谢谢,如果我将这些 API 客户端库聚合到 ipfs/ipfs/clients(以及类似的 ipfs/ipfs/implementations)中的一个文件中,我们可以保持最新状态怎么办?

对于尝试搜索客户端库的人来说,这也可能是更好的体验(比这个问题)。 我们还可以在文档中链接到这个问题,以便人们可以参与讨论。

有人反对吗?

C#/.NET 在这里。 我正在使用这个项目来工作,所以它至少会得到一两年的支持/改进。

大家好,特别是@PayasR @jbenet @MichaelMure

我在这里实现了一个 C++ API 绑定: https :

到目前为止,API (https://github.com/ipfs/interface-ipfs-core/tree/master/API) 的块、配置、文件、通用、对象、pin 和 swarm 方法集已经实现。 剩下的是我将尽快完成的 dag 和 dht。

干杯!

大家好! 我希望你做得好! 我想知道是否有任何计划在 Visual Basic .NET 中进行 API 绑定?

引用了.NET实现。

@Coder206https://github.com/richardschneider/net-ipfs-corehttps://github.com/richardschneider/net-ipfs-api。

它是用 C# 编写的,但应该可以从 VB.Net 访问。

@jbenet我想将我的 php 客户端专门用于 ipfs https://github.com/digitalkaoz/php-ipfs。 它的 api 完整,涵盖了 http+cli“驱动程序”,从官方文档自动生成并经过良好测试(至少在几天内;))

它在MIT下获得许可,所以我认为没有问题。

我很想看到我的回购转移到ipfs组织...

@digitalkaoz太棒了。 想把它转移给我,我会添加到 IPFS 组织中吗? 还想将它添加到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让我们添加到客户端库列表中 :) 你会做 PR 还是我?

@digitalkaoz去吧:)

@diasdavidhttps://github.com/vasild/cpp-ipfs-api移动到https://github.com/ipfs/cpp-ipfs-api 怎么样? 上次我喜欢它时已经完成了,但是我没有时间检查之后是否添加了新的 API 函数。

@vasild我们可以做到。 你还能继续担任那个库的队长吗?

@diasdavid我最近换了工作,一直没能找到足够的时间来给 cpp-ipfs-api 一些爱(例如,检查新功能是否已添加到主 API 中,如果是这种情况,请实施它们)。 将它移到 /ipfs/ 下会增加它的可见性,所以也许其他人也会做出贡献。 OTOH 如果您不想采用仅由一位没有积极工作的开发人员编写的代码,那么最好将其保留在 /vasild/ 下。 IMO 最好将其移至 /ipfs/,我最终会找到时间进一步使用它。 你怎么认为?

@vasild明白了。 我认为最好的方法是遵循您的建议并在自述文件中描述实施状态 + 已知问题的开放问题 + 欢迎新的贡献者。 所有这些 + 转移到 IPFS 组织。

我将在下一个 IPFS All Hands 中提到 IPFS 客户端库 :)

@diasdavid为客户端库列表打开了 PR

在 Mi., 23. Aug. 2017, 17:37 Vasil Dimov [email protected]写道:

@diasdavid https://github.com/diasdavid vasild/ cpp-ipfs-api@b1c557e
https://github.com/vasild/cpp-ipfs-api/commit/b1c557e7a1165ea38d20d5806a35979bfc0a2575
好? (没有已知问题!)


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/ipfs/ipfs/issues/83#issuecomment-324374905或静音
线程
https://github.com/notifications/unsubscribe-auth/AAR611I4GWv1OJkoJNiLvIVJXQnwE_rzks5sbEcygaJpZM4FuFH9
.

@jbenet你好! 将当前的 rust 链接更改为新链接会很棒,因为它已经 2 年没有更新了.. rust-ipfs-api
我的实现仍然是原始的,但它有效!

@rmnoff很棒! 请打开 PR 以将其包含在列表中。 (例如 https://github.com/ipfs/ipfs/pull/265)

@vasild对我来说看起来不错:)

@diasdavid完成! :)

是否对 API 的 Dart 和/或 Elixir 实现感兴趣? 我知道这两种语言都没有特别列出,但我个人会在各种不同的应用程序中使用这两种语言。

越多越好 :)

2017 年 10 月 7 日星期六,上午 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
.

我在 elixir API 上取得了一些进展(大约 65-70% 的命令)。 如果你想看看它,看看它是否符合标准; 我会很感激。 我仍然需要构建许多命令以及文档和测试模块(和 circleCI)。 虽然我能够克服大部分困难的问题(多部分形式支持等),所以在这一点上只需要几天/几周的时间,直到我实现了相当数量的功能。

这是回购: https :

编辑:我将放弃回购,因为似乎没有人关心? 我似乎甚至没有得到你们的回应,而且已经一个月了。 维护一个没有人会使用的软件是没有意义的。 任何有兴趣获取 repo 并在其上进行构建的人都可以告诉我。 所有 API 端点都仅使用基本功能实现。 扩展它们并添加其余部分并不难。

elm-ipfs-binding 怎么样,有人有兴趣让这成为可能吗?

如果需要,可以编写 Perl 绑定。

haskell 我愿意做志愿者。

我可以写Objective-C,有工作清单要做吗?

https://github.com/ipfs/ipfs#api -client-libraries

使用 IPFS 开发移动应用程序的现状如何?
Android app 有几个项目,相当不错。
主要步骤是首先在手机上启动 ipfs 守护进程,并进行一些文件上传等。
我正在尝试基于当前的 android 应用程序制作移动应用程序,并且可能会将它们提取到 android sdk。
在我看来,如果我们能让更多的开发者或公司在移动应用中的 ipfs 系统中存储和检索他们的数据,那么该系统很可能会被很多普通用户使用。
你有这方面的计划或有任何讨论吗?
@jbenet

ipfs objc api?

是的,客户端和服务器可以交谈而不是文件,这将更多
高效的。

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

ipfs objc api?


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/ipfs/ipfs/issues/83#issuecomment-420914945或静音
线程
https://github.com/notifications/unsubscribe-auth/ABPHvCWs76QmmERDY7oqtQOuSPJ2eF54ks5uag0JgaJpZM4FuFH9
.

不久前,我编写了另一组 Common Lisp 绑定(另一个即使经过一些摆弄也拒绝在我的任何一台 PC 上工作,并且不支持发布订阅)。

它就在这里——还有一个 GitHub镜像

谢谢大家,我们正在清理这个存储库。 如果您有其他贡献,请在https://discuss.ipfs.io 中告诉我们。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

brainframe-me picture brainframe-me  ·  3评论

nbingham1 picture nbingham1  ·  19评论

crazysoldier picture crazysoldier  ·  7评论

timthelion picture timthelion  ·  28评论

myqq0000 picture myqq0000  ·  5评论