Ipfs: Ligações de API IPFS

Criado em 19 ago. 2015  ·  76Comentários  ·  Fonte: ipfs/ipfs

Alcançamos uma API bastante estável e o IPFS agora funciona de maneira bastante confiável. As pessoas já estão usando IPFS de outras linguagens, principalmente JS por meio de https://www.npmjs.com/package/ipfs-api

Tem havido conversas sobre como organizar um esforço para obter associações de API para mais linguagens. Talvez possamos começar com:

A API é muito simples - é apenas uma API HTTP + JSON semelhante a REST. Temos voluntários para ajudar com os idiomas listados acima (ou outros)? Por favor, responda aqui se você puder dedicar um bom tempo. (Vou preparar um documento de orientação para implementadores enquanto isso.) Então, podemos ter um monte de pessoas trabalhando nisso ao mesmo tempo, o que tornará tudo mais rápido. E então podemos liberá-los todos de uma vez!

Comentários muito úteis

Há algum interesse em uma implementação Dart e / ou Elixir da API? Sei que nenhum dos idiomas está listado especificamente, mas pessoalmente usaria os dois para várias aplicações diferentes.

Todos 76 comentários

Posso oferecer revisão de código para Ruby

Eu tenho o início das ligações Rust API .

Eu estaria interessado em trabalhar em ligações Ruby, mas não sei o suficiente sobre o projeto ainda, então precisaria de alguma orientação.

C / C ++ Estou disposto a ser voluntário.

Eu gostaria de adicionar uma implementação para Julia .

Obrigado @lgierth @rschulman @Fryie @PayasR e @rened - continuarei com um encaixe rápido aqui.

Enquanto isso, verifique https://github.com/ipfs/node-ipfs-api para obter uma ideia de como funciona. As peças principais estão em:

@jbenet talvez atualize o OP com links para projetos de vinculação existentes? ipfs / py-ipfs , etc

@cryptix py-ipfs eu acho que não é vínculos, mas com o objetivo de ser um impl? talvez alguém possa ganhar ipfs/py-ipfs-api

Obrigado a todos que estão ajudando! OK,

mas já pode começar, dado que node-ipfs-api é tão trivialmente simples.

Estou começando uma implementação Java. Vou postar um link assim que tiver algo não trivial.

API Blueprint é uma especificação de redução para descrever APIs. Ele tem uma conceituação de endpoints e tipos de solicitação e respostas e outros enfeites.

É um subconjunto de markdown, por isso sempre renderizará, mas apiary.io fornece uma exibição mais complexa.

Por exemplo, esta é a redução e esta é a renderização de um blueprint no qual tenho trabalhado recentemente.

Examinei o índice node-api e presumo que conheço os nomes dos terminais. Ainda estou sem noção do modelo de dados.

Se alguém que groove as estruturas de dados e interações estiver interessado em formar pares nisso, eu adoraria contribuir, mas ainda não conheço o sistema bem o suficiente para fazê-lo.

Minha implementação Java está indo aqui: https://github.com/ianopolous/IPFS-API-Java Meu objetivo é torná-la independente e simples.

Ligações python rudimentares acabadas de terminar: https://github.com/amstocker/python-ipfs-api

Qualquer conselho ou teste seria muito apreciado. Já foi testado em minha máquina local (Ubuntu 14.04.2 / Python 2.7.6).

Espero fazer um progresso lento, mas constante nas ligações Ruby aqui . :)

As ligações do python https://github.com/ipfs/python-ipfs-api/ (obrigado!). Se alguém quiser que eles sejam mudados também, me avise. (é mais fácil para a comunidade colaborar em um conjunto de ligações)

@dysbulic feliz em ajudar com o modelo de dados da API. talvez visite #ipfs ou faça perguntas em https://github.com/ipfs/go-ipfs ou https://github.com/ipfs/node-ipfs-api ?

@Fryie coolio, tentarei dar uma olhada no que você já tem, mas se quiser que eu dê uma olhada em algo em particular, sinta-se à vontade para me enviar um ping no IRC

Eu tenho o início de uma ligação C ++ API aqui: https://github.com/MichaelMure/Arbore-qt/tree/master/src/ipfs

Não é realmente um propósito geral e baseado em Qt, mas ainda assim ...

Olá, comecei a criar um wrapper em Scala para a API IPFS HTTP aqui: https://github.com/cboddy/scala-ipfs-api/

Se mais alguém estiver interessado em contribuir (ou tiver pedidos ou sugestões), por favor me avise, caso contrário irei atualizar assim que terminar.

Parece bom! @MichaelMure e @cboddy deixe-me saber quando atinge um certo nível de conclusão e podemos movê-los para ipfs/ org (se você quiser)

@jbenet as ligações Scala / JVM agora estão completas para os comandos básicos enumerados no

ipfs --help

mensagem, junto com a maioria dos comandos de estrutura de dados e alguma cobertura dos outros. O resto deve ser aplicado na próxima semana com testes de integração mais formais, sinta-se à vontade para adicioná-lo ao ipfs / nesse meio tempo.

@cboddy, essa é uma ótima notícia !! gostaria de transferir o repo para ipfs org, da maneira que estamos fazendo para os outros? Eu adicionei você à organização - basta transferir o repo para o usuário ipfs (ou para mim, se não funcionar). Então, certificarei que você tenha o administrador e assim por diante.

@jbenet obrigado e com certeza, pronto!

Eu atualizei a listagem no primeiro post para incluir as novas e incríveis associações de api Python, Java e Scala! Muito obrigado a todos os envolvidos! : clap:: clap:

Devíamos deixar nossas ligações Go tão legais ... @whyrusleeping

Eu vou fazer Lua!

Eu vou fazer Lua!

Muito obrigado! Lmk quando você tem um repositório para colocar no ipfs org! :)

Estou trabalhando em ligações de API do Swift.

Algum exemplo divertido de um liner usando cURL posso executar direto da linha de comando (Linux)?

Olhando para ipfs --help ipfs add --help e outros semelhantes, combinando com
o documento API (https://ipfs.io/docs/api/) e você deve ser capaz de entender a API HTTP.

Pode ou não se adequar ao seu requisito de "diversão" :)

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

Na quinta-feira, 5 de novembro de 2015 às 8h24, bitcoinmeetups.org < [email protected]

escreveu:

Qualquer exemplo divertido de um liner usando cURL posso executar direto do comando
linha (Linux)?

-
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment -153976500.

Tenho trabalhado em uma ligação de API em PHP . No momento, é apenas o subconjunto de comandos IPFS que precisávamos para ipfs.pics, mas envie um ping se precisar de mais e eu os adicionarei!

@cloutier se você quiser, podemos fazer um repo no ipfs org chamado php-ipfs-api e você pode colocar o código lá

@whyrusleeping Eu gostaria de publicá-lo com a mesma licença copyleft forte e sei que pode ser um pouco controverso. está tudo bem com você?

Concluí agora a primeira passagem das ligações da API Swift . Sinta-se à vontade para comentar e usar em seus incríveis projetos iOS / OS X IPFS e para mover para o ipfs org :)

@whyrusleeping Eu gostaria de publicá-lo com a mesma licença copyleft forte e sei que pode ser um pouco controverso. está tudo bem com você?

Hm. Estou indeciso sobre isso, mas me inclino fortemente para manter tudo sob ipfs org permissivo para que os usuários não cometam erros acidentalmente.

@cloutier curioso por que precisa de uma cópia forte deixada para ligações? que exclui estritamente o uso comercial, o local onde os usuários mais precisariam de ligações.

ortogonal a isso - pensando mais sobre isso - nós definitivamente precisaremos de ligações oficiais no php que sejam permissivas (MIT / BSD / Apache2). se @cloutier não quiser torná-los assim, precisaremos de um diferente.

@cloutier @jbenet A LGPL seria um meio-termo razoável?

Não, AFAIK LGPL não é compatível com MIT / BSD / Apache2.0

Pensei um pouco mais nisso e seria melhor tê-lo sob uma licença relaxada para obter mais projetos usando um padrão aberto como o IPFS e, portanto, melhor para software livre em geral. Apache 2.0 seria bom.

@davidar LGPL pode ser uma boa ideia. Isso permitiria a incorporação em muitas licenças (incluindo MIT e até mesmo código proprietário) se o código-fonte de pelo menos a ligação estiver disponível, mas o PHP é um caso peculiar, pois quase só é executado em servidores, e a cláusula copyleft não é acionado no código de um servidor . Poderia muito bem liberá-lo sob uma licença permissiva.

@jbenet Para que AGPL não significa não comercial . Não preciso de copyleft forte por razões técnicas, mas quero isso por razões políticas.

muito obrigado @cloutier!

@cloutier Sim, acho que copyleft faz mais sentido para aplicativos _ no topo do_ IPFS (como ipfs.pics), em vez de bibliotecas de nível inferior como esta.

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

Algumas bibliotecas implementam padrões gratuitos que competem com padrões restritos, como Ogg Vorbis (que compete com áudio MP3) e WebM (que compete com vídeo MPEG-4). Para esses projetos, o uso generalizado do código é vital para o avanço da causa do software livre e faz mais bem do que um copyleft no código do projeto faria.

Nessas situações especiais, recomendamos a Licença Apache 2.0.

@davidar Resume muito bem o que

Eu tenho o início das ligações PHP: https://github.com/cloutier/php-ipfs-api

É basicamente o mesmo código que executamos em produção em ipfs.pics, mas foi licenciado novamente no Apache 2.0.

cc @mekarpeles

Obrigado, e se eu agregar essas bibliotecas-cliente API em um arquivo dentro de ipfs / ipfs / clients (e da mesma forma ipfs / ipfs / implementations) que podemos manter atualizado?

Provavelmente, também será uma experiência melhor para quem está tentando pesquisar em bibliotecas cliente (do que esse problema). Além disso, podemos criar um link para esse problema no documento para que as pessoas possam contribuir com a discussão.

Qualquer oposição?

C # / .net aqui . Estou usando este projeto para o trabalho, então ele será apoiado / melhorado por um ou dois anos, no mínimo.

Olá a todos e @PayasR @jbenet @MichaelMure em particular,

Eu implementei uma API C ++ aqui: https://github.com/vasild/cpp-ipfs-api e acabei de conseguir sua cobertura de teste para 100% depois de algumas lutas com Travis e Coveralls.

Até agora, o conjunto de métodos block, config, files, genérico, objeto, pin e swarm da API (https://github.com/ipfs/interface-ipfs-core/tree/master/API) foi implementado. O que resta são os dag e dht que tentarei fazer em breve.

Cheerz!

Olá pessoal! Eu espero que você esteja bem! Eu queria saber se havia algum plano para fazer uma ligação de API no Visual Basic .NET?

Houve referência à implementação do .NET .

@ Coder206 Veja https://github.com/richardschneider/net-ipfs-core e https://github.com/richardschneider/net-ipfs-api.

Está escrito em C #, mas deve ser acessível em VB.Net.

@jbenet eu gostaria de dedicar meu cliente php para ipfs https://github.com/digitalkaoz/php-ipfs. sua api completa, cobre os "drivers" http + cli, gerados automaticamente a partir dos documentos oficiais e bem testados (pelo menos em alguns dias;))

está licenciado sob a MIT , então não há problemas, eu acho.

adoraria ver meu repo transferido para a organização ipfs ...

@digitalkaoz isso é incrível. Quer transferir para mim e eu adicionarei à organização IPFS? Também deseja adicioná-lo à lista em https://github.com/ipfs/ipfs#api -client-libraries?

btw pessoal, agora existe um logotipo incrível para as bibliotecas do cliente HTTP. Eu fiz RP para todos os que estavam no - https://github.com/ipfs/ipfs#api -client-libraries -, se o seu não estava lá, aqui está:

image

Além disso, se você fez uma implementação, considere referenciá-la em https://github.com/ipfs/ipfs#api-client-libraries e deixe uma nota sobre sua integridade :)

@diasdavid vamos adicionar à lista de bibliotecas cliente :) você fará um PR ou devo?

@digitalkaoz vá em frente :)

@diasdavid, que tal mover https://github.com/vasild/cpp-ipfs-api para https://github.com/ipfs/cpp-ipfs-api? Estava completo da última vez que gostei dele, mas não tive tempo de verificar se novas funções de API foram adicionadas depois disso.

@vasild podemos fazer isso. Você ainda está disponível para continuar sendo o capitão dessa lib?

@diasdavid Eu mudei de emprego recentemente e não consegui encontrar tempo suficiente para dar um pouco de amor ao cpp-ipfs-api (por exemplo, verificar se novas funções foram adicionadas à API principal e implementá-las se for o caso). Movê-lo para / ipfs / aumentará sua visibilidade, então talvez outros possam contribuir também. OTOH se você não deseja adotar o código escrito por apenas um desenvolvedor que não está trabalhando nele ativamente, então talvez seja melhor deixá-lo em / vasild /. IMO, seria melhor movê-lo para / ipfs / e, eventualmente, encontrarei tempo para brincar mais com ele. O que você acha?

@vasild entendido. Acho que a melhor abordagem é seguir sua sugestão e descrever o estado da implementação no README + questões abertas para problemas conhecidos + boas-vindas aos novos contribuidores. Tudo isso + indo para a organização IPFS.

Mencionarei as bibliotecas cliente IPFS no próximo IPFS All Hands :)

@diasdavid abriu um PR para a lista da biblioteca do cliente

Em Mi., 23 de agosto de 2017, 17:37 Vasil Dimov [email protected] escreveu:

@diasdavid https://github.com/diasdavid vasild / cpp-ipfs-api @ b1c557e
https://github.com/vasild/cpp-ipfs-api/commit/b1c557e7a1165ea38d20d5806a35979bfc0a2575
OK? (não há problemas conhecidos!)

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-324374905 ou mudo
o segmento
https://github.com/notifications/unsubscribe-auth/AAR611I4GWv1OJkoJNiLvIVJXQnwE_rzks5sbEcygaJpZM4FuFH9
.

@jbenet hello! Seria ótimo mudar o link de ferrugem atual para o novo, porque ele não foi atualizado por 2 anos já .. rust-ipfs-api
Minha implementação ainda está crua, mas funciona!

@rmnoff ótimo! Abra um PR para incluí-lo na lista. (Exemplo https://github.com/ipfs/ipfs/pull/265)

@vasild parece bom para mim :)

@diasdavid done! :)

Há algum interesse em uma implementação Dart e / ou Elixir da API? Sei que nenhum dos idiomas está listado especificamente, mas pessoalmente usaria os dois para várias aplicações diferentes.

Quanto mais melhor :)

Sábado, 7 de outubro de 2017, 11:00 Tensor-Programming [email protected]
escreveu:

Há algum interesse em uma implementação Dart e / ou Elixir da API? eu
sei que nenhum dos idiomas está listado especificamente, mas eu pessoalmente usaria
ambos para várias aplicações diferentes.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-334917974 ou mudo
o segmento
https://github.com/notifications/unsubscribe-auth/ABL4HIInzOWvWTAIWjeRqR_mRuz22HC7ks5spy-ZgaJpZM4FuFH9
.

Fiz um certo progresso (cerca de 65-70% dos comandos) na API do elixir. Se você quiser dar uma olhada nisso e ver se está à altura; Eu adoraria isso. Ainda preciso construir muitos dos comandos, bem como a documentação e o módulo de teste (e circleCI). Eu fui capaz de superar a maioria das lombadas difíceis (suporte de formulário de várias partes, etc.), então é apenas uma questão de dias / semanas até que eu tenha uma quantidade razoável de funcionalidade implementada.

Aqui está o repositório: https://github.com/tensor-programming/Elixir-Ipfs-Api

Edit: vou abandonar o repo porque ninguém parece se importar? Parece que nem mesmo recebi uma resposta de vocês e já faz um mês. Não adianta manter um software que ninguém vai usar. Qualquer pessoa interessada em obter o repo e desenvolvê-lo, é só me avisar. Todos os endpoints da API foram implementados apenas com a funcionalidade básica. Não seria difícil estendê-los e adicionar o resto.

Que tal um elm-ipfs-binding, alguém está interessado em tornar isso possível?

Pode escrever ligação Perl, se necessário.

haskell Estou disposto a ser voluntário.

eu posso escrever Objective-C, há uma lista de trabalho para fazer?

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

E quanto ao status de desenvolvimento de aplicativos móveis usando IPFS?
Existem vários projetos para app Android, o que é muito bom.
A etapa principal é primeiro iniciar o daemon ipfs em um celular e fazer upload de alguns arquivos, etc.
Estou tentando fazer um aplicativo móvel com base no aplicativo Android atual e posso extraí-los para um SDK do Android.
Na minha opinião, se conseguirmos que mais desenvolvedores ou empresas armazenem e recuperem seus dados no sistema ipfs em aplicativos móveis, então é provável que o sistema possa ser usado por muitos usuários comuns.
Você tem algum plano sobre isso ou há alguma discussão sobre isso?
@jbenet

Ipfs objc api?

sim, o cliente e o servidor podem conversar em vez do arquivo, o que fará mais
eficiente.

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

Ipfs objc api?

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-420914945 ou mudo
o segmento
https://github.com/notifications/unsubscribe-auth/ABPHvCWs76QmmERDY7oqtQOuSPJ2eF54ks5uag0JgaJpZM4FuFH9
.

Eu escrevi outro conjunto de ligações do Common Lisp um tempo atrás (o outro se recusou a funcionar em qualquer um dos meus PCs mesmo depois de mexer um pouco e não suportava pubsub).

É bem aqui - há um espelho do GitHub também.

Obrigado a todos, estamos limpando este repositório. Se você tiver contribuições adicionais, informe-nos em https://discuss.ipfs.io .

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

randomshinichi picture randomshinichi  ·  5Comentários

Netherdrake picture Netherdrake  ·  9Comentários

Miserlou picture Miserlou  ·  6Comentários

brainframe-me picture brainframe-me  ·  3Comentários

flyingzumwalt picture flyingzumwalt  ·  28Comentários