Ipfs: Enlaces de API de IPFS

Creado en 19 ago. 2015  ·  76Comentarios  ·  Fuente: ipfs/ipfs

Hemos alcanzado una API bastante estable e IPFS ahora se ejecuta de manera bastante confiable. La gente ya está usando IPFS desde otros idiomas, principalmente JS a través de https://www.npmjs.com/package/ipfs-api

Se ha hablado de organizar un esfuerzo para obtener enlaces de API para más idiomas. Quizás podamos empezar con:

La API es muy simple: es solo una API HTTP + JSON similar a REST. ¿Tenemos voluntarios para ayudar con los idiomas mencionados anteriormente (u otros)? Por favor responda aquí si puede dedicar una buena cantidad de tiempo. (Mientras tanto, prepararé un documento guía para los implementadores). Entonces podemos tener un grupo de personas trabajando en esto al mismo tiempo, lo que hará que sea mucho más rápido. ¡Y luego podemos lanzarlos todos de una vez!

Comentario más útil

¿Existe algún interés en una implementación de Dart y / o Elixir de la API? Sé que ninguno de los idiomas se enumera específicamente, pero personalmente usaría ambos para varias aplicaciones diferentes.

Todos 76 comentarios

Puedo ofrecer revisión de código para Ruby

Tengo los inicios de los enlaces API de

Me interesaría trabajar en enlaces Ruby, pero todavía no sé lo suficiente sobre el proyecto, por lo que necesitaría orientación.

C / C ++ Estoy dispuesto a ser voluntario.

Me gustaría agregar una implementación para Julia .

Gracias @lgierth @rschulman @Fryie @PayasR y @rened . Seguiré con un acoplamiento rápido aquí.

Mientras tanto, consulte https://github.com/ipfs/node-ipfs-api para obtener una idea general de cómo funciona. Las partes clave están en:

@jbenet ¿ tal vez actualice el OP con enlaces a proyectos vinculantes existentes? ipfs / py-ipfs , etc.

@cryptix py-ipfs creo que no es un enlace, pero con el objetivo de ser un impl? tal vez alguien pueda ganar ipfs/py-ipfs-api

¡Gracias a todos los que están ayudando! OK,

pero ya puede comenzar, dado que node-ipfs-api es tan trivialmente simple.

Estoy comenzando una implementación de Java. Publicaré un enlace una vez que tenga algo que no sea trivial.

API Blueprint es una especificación de rebajas para describir API. Tiene una conceptualización de puntos finales y tipos de solicitudes y respuestas y todo eso.

Es un subconjunto de markdown, por lo que siempre se renderizará, pero apiary.io proporciona una visualización más compleja.

Por ejemplo, esta es la rebaja y esta es la representación de un plano en el que he estado trabajando recientemente.

He examinado el índice node-api y supongo que conozco los nombres de los puntos finales. Todavía no tengo ni idea del modelo de datos.

Si alguien que asimila las estructuras de datos y las interacciones está interesado en emparejarse en esto, me encantaría contribuir, pero todavía no entiendo el sistema lo suficientemente bien como para hacerlo.

Mi implementación de Java va aquí: https://github.com/ianopolous/IPFS-API-Java Mi objetivo es hacerlo autónomo y simple.

Acabo de terminar los enlaces de Python rudimentarios: https://github.com/amstocker/python-ipfs-api

Cualquier consejo o prueba será muy apreciado. Ya está algo probado en mi máquina local (Ubuntu 14.04.2 / Python 2.7.6).

Espero hacer un progreso lento pero constante en las fijaciones de Ruby aquí . :)

Se movieron los enlaces de https://github.com/ipfs/python-ipfs-api/ (¡gracias!). Si alguien más quiere que lo muevan también, avíseme. (es más fácil para la comunidad colaborar en un conjunto de enlaces)

@dysbulic feliz de ayudar con el modelo de datos API. tal vez pase por #ipfs o haga preguntas en https://github.com/ipfs/go-ipfs o https://github.com/ipfs/node-ipfs-api ?

@Fryie coolio , intentaré echar un vistazo a lo que ya tienes, pero si quieres que mire algo en particular, no dudes en enviarme un ping en el IRC.

Tengo el inicio de un enlace de API de C ++ aquí: https://github.com/MichaelMure/Arbore-qt/tree/master/src/ipfs

No es realmente de propósito general y está basado en Qt, pero aún así ...

Hola, comencé con un contenedor en Scala para IPFS HTTP-API aquí: https://github.com/cboddy/scala-ipfs-api/

Si alguien más está interesado en contribuir (o tiene solicitudes o sugerencias), hágamelo saber; de lo contrario, lo actualizaré una vez que esté completo.

¡Luciendo bien! @MichaelMure y @cboddy me ipfs/ org (si lo desea)

@jbenet, los enlaces Scala / JVM ahora están completos para los comandos básicos enumerados en el

ipfs --ayuda

mensaje, junto con la mayoría de los comandos de estructura de datos y algo de cobertura de los demás. El resto debería ser fácil de instalar en la próxima semana con pruebas de integración más formales, no dude en agregarlo a ipfs / mientras tanto.

@cboddy esta es una gran noticia !! ¿Le gustaría transferir el repositorio a la organización ipfs , como lo estamos haciendo con los demás? Te agregué a la organización, solo transfiere el repositorio a ipfs usuario (oa mí si no funciona). Luego me aseguraré de que tengas administrador y así sucesivamente.

@jbenet gracias y seguro, ¡lo he hecho!

¡Actualicé la lista en la primera publicación para incluir los nuevos e increíbles enlaces de API de Python, Java y Scala! ¡Muchas gracias a todos los involucrados! :aplaudir:

Deberíamos hacer nuestras fijaciones Go tan bonitas ... @whyrusleeping

¡Lo haré Lua!

¡Lo haré Lua!

¡Muchas gracias! ¡Lmk cuando tenga un repositorio para poner en la organización ipfs! :)

Estoy trabajando en enlaces de API Swift.

¿Algún ejemplo divertido de una línea usando cURL que pueda ejecutar directamente desde la línea de comandos (Linux)?

Mirando el ipfs --help ipfs add --help y demás, combinando con
el documento API (https://ipfs.io/docs/api/) y debería poder comprender la API HTTP.

Puede o no encajar con su requisito de "diversión" :)

Atentamente,
Victor Bjelkholm
(+34) 672 15 90 89

El jueves 5 de noviembre de 2015 a las 8:24 a. M., Bitcoinmeetups.org < [email protected]

escribió:

Cualquier ejemplo divertido de una línea usando cURL puedo ejecutar directamente desde el comando
línea (Linux)?

-
Responda a este correo electrónico directamente o véalo en GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment -153976500.

He estado trabajando en un enlace de API en PHP . En este momento es solo el subconjunto de comandos IPFS que necesitábamos para ipfs.pics, ¡pero si necesita más, envíeme un ping y los agregaré!

@cloutier si lo desea, podemos hacerle un repositorio bajo la organización ipfs llamado php-ipfs-api y puede poner el código allí

@whyrusleeping Me gustaría publicarlo con la misma licencia de copyleft fuerte y sé que podría ser un poco controvertido. Está bien para tí?

Ahora he completado la primera pasada de los enlaces de la API de Swift . Siéntase libre de comentar y usar para sus increíbles proyectos IPFS de iOS / OS X y pasar a la organización ipfs :)

@whyrusleeping Me gustaría publicarlo con la misma licencia de copyleft fuerte y sé que podría ser un poco controvertido. Está bien para tí?

Hm. Estoy indeciso sobre esto, pero me inclinaría fuertemente a mantener todo bajo ipfs org permisivo para que los usuarios no cometan errores accidentalmente.

@cloutier curioso, ¿por qué es necesario dejar una copia sólida para las encuadernaciones? que excluye estrictamente el uso comercial, el lugar donde los usuarios necesitarían más encuadernaciones.

ortogonal a eso, pensando más en esto, definitivamente necesitaremos enlaces oficiales en php que sean permisivos (MIT / BSD / Apache2). si @cloutier no quiere que sean así, necesitaremos uno diferente.

@cloutier @jbenet ¿LGPL sería un compromiso razonable?

No, AFAIK LGPL no es compatible con MIT / BSD / Apache2.0

Lo he pensado un poco más y sería mejor tenerlo bajo una licencia laxa para poder conseguir más proyectos usando un estándar abierto como IPFS y, por tanto, mejor para el software libre en general. Apache 2.0 sería bueno.

@davidar LGPL podría ser una buena idea. Permitiría incrustar una gran cantidad de licencias (incluido el MIT e incluso el código propietario) si el código fuente de al menos el enlace está disponible, pero PHP es un caso peculiar ya que casi solo se ejecuta en servidores, y la cláusula copyleft no lo está. desencadenado en el código de un servidor . Bien podría publicarlo bajo una licencia permisiva.

@jbenet Para que conste, AGPL no significa no comercial . No necesito un copyleft fuerte por razones técnicas, pero lo quiero por razones políticas.

muchas gracias @cloutier!

@cloutier Sí, creo que el copyleft tiene más sentido para aplicaciones _ en la parte superior de_ IPFS (como ipfs.pics), en lugar de bibliotecas de nivel inferior como esta.

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

Algunas bibliotecas implementan estándares gratuitos que compiten con estándares restringidos, como Ogg Vorbis (que compite con el audio MP3) y WebM (que compite con el video MPEG-4). Para estos proyectos, el uso generalizado del código es vital para promover la causa del software libre, y hace más bien de lo que haría un copyleft en el código del proyecto.

En estas situaciones especiales, recomendamos Apache License 2.0.

@davidar Resume muy bien lo que he estado pensando, ¡gracias! : +1:

Tengo el inicio de los enlaces PHP: https://github.com/cloutier/php-ipfs-api

Es básicamente el mismo código que tenemos en producción en ipfs.pics, pero con licencia bajo Apache 2.0.

cc @mekarpeles

Gracias, ¿qué pasa si agrego estas bibliotecas cliente API en un archivo dentro de ipfs / ipfs / clients (y de manera similar ipfs / ipfs / implementations) que podemos mantener actualizado?

Es probable que esta también sea una mejor experiencia para las personas que intentan buscar en bibliotecas cliente (que este problema). Además, podemos vincularnos a este tema en el documento para que las personas puedan contribuir a la discusión.

¿Alguna oposición?

C # /. NET aquí . Estoy usando este proyecto para trabajar, por lo que será compatible / mejorado durante uno o dos años como mínimo.

Hola a todos y a @PayasR @jbenet @MichaelMure en particular,

He implementado enlaces de API de C ++ aquí: https://github.com/vasild/cpp-ipfs-api y acabo de obtener su cobertura de prueba al 100% después de algunas peleas con Travis y Coveralls.

Hasta ahora, se han implementado el conjunto de métodos block, config, files, generic, object, pin y swarm de la API (https://github.com/ipfs/interface-ipfs-core/tree/master/API). Lo que queda son los dag y dht que intentaré hacer pronto.

¡Cheerz!

¡Hola, todos! ¡Espero que lo estás haciendo bien! Me preguntaba si había planes para hacer un enlace de API en Visual Basic .NET.

Se hizo referencia a la implementación de .NET .

@ Coder206 Consulte https://github.com/richardschneider/net-ipfs-core y https://github.com/richardschneider/net-ipfs-api.

Está escrito en C # pero debería ser accesible desde VB.Net.

@jbenet me gustaría dedicar mi cliente php para ipfs https://github.com/digitalkaoz/php-ipfs. su api completa, cubre ambos "drivers" http + cli, autogenerados a partir de los documentos oficiales y bien probados (al menos en unos pocos días;))

su licencia bajo el MIT , así que no hay problemas, creo.

Me encantaría ver mi repositorio transferido a la organización ipfs ...

@digitalkaoz eso es increíble. ¿Quieres transferirlo y lo agregaré a la organización de IPFS? ¿También desea agregarlo a la lista en https://github.com/ipfs/ipfs#api -client-libraries?

Por cierto, todos, ahora hay un logotipo impresionante para las bibliotecas de cliente HTTP. He enviado relaciones públicas a todos los que estaban en - https://github.com/ipfs/ipfs#api -client-libraries -, si el tuyo no estaba allí, aquí está:

image

Además, si realizó una implementación, considere hacer referencia a ella en https://github.com/ipfs/ipfs#api-client-libraries y deje una nota sobre su integridad :)

@diasdavid permite agregar a la lista de bibliotecas cliente :) ¿

@digitalkaoz adelante :)

@diasdavid ¿qué hay de mover https://github.com/vasild/cpp-ipfs-api a https://github.com/ipfs/cpp-ipfs-api? Estaba completo la última vez que disfruté con él, pero no he tenido tiempo de verificar si se han agregado nuevas funciones de API después de eso.

@vasild podemos hacer eso. ¿Sigues disponible para seguir siendo el capitán de esa biblioteca?

@diasdavid Cambié de trabajo recientemente y no he podido encontrar el tiempo suficiente para darle un poco de amor a cpp-ipfs-api (por ejemplo, verifique si se han agregado nuevas funciones a la API principal e impleméntelas si ese es el caso). Moverlo debajo de / ipfs / aumentará su visibilidad, por lo que quizás otros también contribuyan. OTOH, si no desea adoptar código escrito por un solo desarrollador que no está trabajando activamente en él, tal vez sea mejor dejarlo en / vasild /. En mi opinión, sería mejor moverlo a / ipfs / y eventualmente encontraré tiempo para seguir jugando con él. ¿Qué piensas?

@vasild entendió. Creo que el mejor enfoque es seguir su sugerencia y describir el estado de la implementación del README + problemas abiertos para problemas conocidos + dar la bienvenida a nuevos colaboradores. Todo esto + moviéndose a la organización IPFS.

Mencionaré las bibliotecas cliente de IPFS en el próximo IPFS All Hands :)

@diasdavid https://github.com/vasild/cpp-ipfs-api/commit/b1c557e7a1165ea38d20d5806a35979bfc0a2575 ¿de acuerdo? (¡no hay problemas conocidos!)

@diasdavid abrió un PR para la lista de la biblioteca del cliente

El miércoles, 23 de agosto de 2017, a las 17:37, Vasil Dimov [email protected] escribió:

@diasdavid https://github.com/diasdavid vasild / cpp-ipfs-api @ b1c557e
https://github.com/vasild/cpp-ipfs-api/commit/b1c557e7a1165ea38d20d5806a35979bfc0a2575
¿OK? (¡no hay problemas conocidos!)

-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-324374905 , o silenciar
la amenaza
https://github.com/notifications/unsubscribe-auth/AAR611I4GWv1OJkoJNiLvIVJXQnwE_rzks5sbEcygaJpZM4FuFH9
.

@jbenet ¡hola! Sería genial cambiar el enlace de rust actual por el nuevo, porque ya no se actualizó durante 2 años. Rust-ipfs-api
Mi implementación aún está en bruto, ¡pero funciona!

@rmnoff ¡genial! Abra un PR para incluirlo en la lista. (Ejemplo https://github.com/ipfs/ipfs/pull/265)

@vasild Me parece bien :)

@diasdavid hecho! :)

¿Existe algún interés en una implementación de Dart y / o Elixir de la API? Sé que ninguno de los idiomas se enumera específicamente, pero personalmente usaría ambos para varias aplicaciones diferentes.

Mientras más, mejor :)

El sábado, 7 de octubre de 2017, 11:00 a. M. Tensor-Programming [email protected]
escribió:

¿Existe algún interés en una implementación de Dart y / o Elixir de la API? I
sé que ninguno de los idiomas está específicamente en la lista, pero yo personalmente usaría
ambos para varias aplicaciones diferentes.

-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-334917974 , o silenciar
la amenaza
https://github.com/notifications/unsubscribe-auth/ABL4HIInzOWvWTAIWjeRqR_mRuz22HC7ks5spy-ZgaJpZM4FuFH9
.

He avanzado un poco (alrededor del 65-70% de los comandos) en la API de elixir. Si quieres echarle un vistazo y ver si está a la altura; Lo apreciaría. Todavía necesito construir muchos de los comandos, así como la documentación y el módulo de prueba (y circleCI). Sin embargo, pude superar la mayoría de los problemas difíciles (soporte de formularios de varias partes, etc.), por lo que es solo una cuestión de días / semanas en este punto hasta que tenga una cantidad bastante decente de la funcionalidad implementada.

Aquí está el repositorio: https://github.com/tensor-programming/Elixir-Ipfs-Api

Editar: ¿Abandonaré el repositorio porque a nadie parece importarle? Parece que ni siquiera recibí una respuesta de ustedes y ha pasado un mes. No tiene sentido mantener un software que nadie va a usar. Cualquiera que esté interesado en tomar el repositorio y desarrollarlo, hágamelo saber. Todos los puntos finales de la API se implementaron solo con la funcionalidad básica. No sería difícil extenderlos y agregar el resto.

¿Qué pasa con un elm-ipfs-binding, hay alguien interesado en hacer esto posible?

Puede escribir enlaces de Perl si es necesario.

Haskell Estoy dispuesto a ser voluntario.

Puedo escribir Objective-C, ¿hay una lista de trabajo que hacer?

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

¿Qué tal el estado del desarrollo de aplicaciones móviles usando IPFS?
Hay varios proyectos para la aplicación de Android, lo cual es bastante bueno.
El paso principal es, en primer lugar, iniciar el demonio ipfs en un dispositivo móvil y cargar algunos archivos, etc.
Estoy tratando de hacer una aplicación móvil basada en la aplicación de Android actual, y puedo extraerlas a un sdk de Android.
En mi opinión, si podemos conseguir que más desarrolladores o empresas almacenen y recuperen sus datos en el sistema ipfs en aplicaciones móviles, es probable que muchos usuarios comunes puedan utilizar el sistema.
¿Tiene algún plan al respecto o hay alguna discusión al respecto?
@jbenet

Ipfs objc api?

sí, el cliente y el servidor pueden hablar con en lugar de archivo, lo que hará más
eficiente.

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

Ipfs objc api?

-
Estás recibiendo esto porque hiciste un comentario.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-420914945 , o silenciar
la amenaza
https://github.com/notifications/unsubscribe-auth/ABPHvCWs76QmmERDY7oqtQOuSPJ2eF54ks5uag0JgaJpZM4FuFH9
.

Escribí otro conjunto de enlaces de Common Lisp hace un tiempo (el otro se negó a trabajar en cualquiera de mis PC incluso después de algunas manipulaciones, y no admitía pubsub).

Está justo aquí , también hay un espejo de GitHub.

Gracias a todos, estamos limpiando este repositorio. Si tiene contribuciones adicionales, háganoslo saber en https://discuss.ipfs.io .

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

daviddias picture daviddias  ·  29Comentarios

haarts picture haarts  ·  4Comentarios

nbingham1 picture nbingham1  ·  19Comentarios

crazysoldier picture crazysoldier  ·  7Comentarios

randomshinichi picture randomshinichi  ·  5Comentarios