Ipfs: Ikatan API IPFS

Dibuat pada 19 Agu 2015  ·  76Komentar  ·  Sumber: ipfs/ipfs

Kami telah mencapai API yang cukup stabil, dan IPFS sekarang berjalan dengan cukup andal. Orang-orang sudah menggunakan IPFS dari bahasa lain, terutama JS melalui https://www.npmjs.com/package/ipfs-api

Ada pembicaraan tentang mengatur upaya untuk mendapatkan binding API untuk lebih banyak bahasa. Mungkin kita bisa mulai dengan:

API ini sangat sederhana -- ini hanyalah HTTP + JSON API yang mirip REST. Apakah kami memiliki sukarelawan untuk membantu dengan bahasa yang tercantum di atas (atau yang lain)? Harap tanggapi di sini jika Anda dapat mendedikasikan sebagian besar waktu Anda. (Sementara itu saya akan menyiapkan dokumen pedoman untuk pelaksana.) Kemudian kita dapat meminta banyak orang mengerjakan ini pada saat yang sama, yang akan membuatnya berjalan lebih cepat. Dan kemudian kita bisa melepaskan semuanya sekaligus!

Komentar yang paling membantu

Apakah ada minat dalam implementasi API Dart dan/atau Elixir? Saya tahu tidak ada bahasa yang secara khusus terdaftar tetapi saya pribadi akan menggunakan keduanya untuk berbagai aplikasi yang berbeda.

Semua 76 komentar

Saya dapat menawarkan ulasan kode untuk Ruby

Saya memiliki awal dari Rust API bindings .

Saya akan tertarik untuk mengerjakan binding Ruby, tetapi saya belum cukup tahu tentang proyek ini, jadi saya memerlukan beberapa panduan.

C/C++ Saya bersedia menjadi sukarelawan.

Saya ingin menambahkan implementasi untuk Julia .

Terima kasih @lgierth @rschulman @Fryie @PayasR dan @rened -- Saya akan menindaklanjuti dengan dok cepat di sini.

Sementara itu, periksa https://github.com/ipfs/node-ipfs-api untuk mengetahui cara kerjanya. Bagian-bagian penting ada di:

@jbenet mungkin memperbarui OP dengan tautan ke proyek pengikatan yang ada? ipfs/py-ipfs , dll

@cryptix py-ipfs saya pikir bukan binding, tetapi bertujuan untuk menjadi impl? mungkin seseorang dapat menghasilkan ipfs/py-ipfs-api

Terima kasih semua orang yang membantu! Oke,

  • saya telah menerapkan flag ipfs --api <multiaddr> <cmd> untuk menargetkan daemon jarak jauh ( lihat PR ini ) -- yang sangat berguna di sini untuk memeriksa: target nc .
  • saya telah membuat dokumen pendahuluan yang sangat sederhana: https://github.com/ipfs/go-ipfs/blob/master/docs/implement-api-bindings.md
  • langkah selanjutnya adalah menghasilkan spesifikasi penurunan harga dari seluruh go-ipfs api berdasarkan kode (dapatkah seseorang mengambil tusukan?)

tetapi sudah bisa dimulai, mengingat node-ipfs-api sangat sederhana.

Saya memulai implementasi Java. Akan memposting tautan setelah saya memiliki sesuatu yang tidak sepele.

API Blueprint adalah spesifikasi penurunan harga untuk mendeskripsikan API. Ini memiliki konseptualisasi titik akhir dan jenis permintaan dan tanggapan dan yang lainnya.

Ini adalah bagian dari penurunan harga, jadi itu akan selalu dirender, tetapi apiary.io menyediakan tampilan yang lebih kompleks.

Misalnya, ini adalah penurunan harga dan ini adalah rendering untuk cetak biru yang sedang saya kerjakan baru-baru ini.

Saya telah membaca dengan teliti

Jika siapa pun yang memahami struktur data dan interaksi tertarik untuk memasangkan ini, saya ingin berkontribusi, tetapi saya belum mendapatkan sistem yang cukup baik untuk melakukannya dulu.

Implementasi Java saya ada di sini: https://github.com/ianopolous/IPFS-API-Java Saya bertujuan untuk membuatnya mandiri dan sederhana.

Baru saja menyelesaikan ikatan python yang belum sempurna: https://github.com/amstocker/python-ipfs-api

Setiap saran atau pengujian akan sangat dihargai. Itu sudah agak diuji pada mesin lokal saya (Ubuntu 14.04.2/Python 2.7.6).

Saya berharap untuk melakukan kemajuan yang lambat namun stabil pada binding Ruby di sini . :)

Memindahkan ikatan python https://github.com/ipfs/python-ipfs-api/ (terima kasih!). Jika ada orang lain yang ingin pindah juga, beri tahu saya. (lebih mudah bagi komunitas untuk semua berkolaborasi dalam satu set binding)

@dysbulic senang membantu dengan model data API. mungkin mampir #ipfs atau ajukan pertanyaan di https://github.com/ipfs/go-ipfs atau https://github.com/ipfs/node-ipfs-api ?

@Fryie coolio, saya akan mencoba untuk melihat apa yang sudah Anda miliki, tetapi jika Anda ingin saya melihat sesuatu yang khusus, silakan ping saya di IRC

Saya memulai pengikatan C++ API di sini: https://github.com/MichaelMure/Arbore-qt/tree/master/src/ipfs

Ini bukan tujuan umum dan berbasis Qt, tapi tetap saja ...

Halo, saya sudah memulai pembungkus di Scala untuk IPFS HTTP-API di sini: https://github.com/cboddy/scala-ipfs-api/

Jika ada orang lain yang tertarik untuk berkontribusi (atau memiliki permintaan atau saran), beri tahu saya, jika tidak, saya akan memperbarui setelah selesai.

Terlihat bagus! @MichaelMure dan @cboddy biarkan aku tahu saat mencapai beberapa tingkat penyelesaian dan kita bisa memindahkan mereka ke ipfs/ org (jika Anda ingin)

@jbenet binding Scala/JVM sekarang lengkap untuk perintah dasar yang disebutkan dalam

ipfs --bantuan

pesan, bersama dengan sebagian besar perintah struktur data dan beberapa cakupan yang lain. Sisanya akan langsung dilanjutkan pada minggu depan dengan tes integrasi yang lebih formal, jangan ragu untuk menambahkannya ke ipfs/ sementara itu.

@cboddy ini adalah berita bagus!! apakah Anda ingin mentransfer repo ke ipfs org, seperti yang kami lakukan untuk yang lain? Saya menambahkan Anda ke org-- cukup transfer repo ke pengguna ipfs (atau saya jika tidak berfungsi). Saya kemudian akan memastikan Anda memiliki admin dan sebagainya.

@jbenet terima kasih dan tentu saja, sudah selesai!

Saya telah memperbarui daftar di posting pertama untuk menyertakan binding Python, Java, dan Scala api baru yang mengagumkan! Terima kasih banyak untuk semua orang yang terlibat! :tepuk tangan:

Kita harus membuat binding Go kita sebaik... @whyrusleeping

Aku akan melakukannya Lu!

Aku akan melakukannya Lu!

Terima kasih banyak! Lmk ketika Anda memiliki repo untuk dimasukkan ke dalam ipfs org! :)

Saya sedang mengerjakan binding Swift API.

Adakah contoh one liner yang menyenangkan menggunakan cURL yang dapat saya jalankan langsung dari baris perintah (Linux)?

Dengan melihat ipfs --help ipfs add --help dan semacamnya, digabungkan dengan
dokumen API ( https://ipfs.io/docs/api/ ) dan Anda harus dapat memahami HTTP API.

Mungkin atau mungkin tidak cocok dengan persyaratan "menyenangkan" Anda :)

Sungguh-sungguh,
Victor Bjelkholm
(+34) 672 15 90 89

Pada Kam, 5 Nov 2015 jam 08:24, bitcoinmeetups.org < [email protected]

menulis:

Contoh one liner yang menyenangkan menggunakan cURL, saya dapat menjalankan langsung dari perintah
baris (Linux)?


Balas email ini secara langsung atau lihat di GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment -153976500.

Saya telah mengerjakan pengikatan API di PHP . Saat ini hanya bagian dari perintah IPFS yang kami butuhkan untuk ipfs.pics, tetapi ping saya jika Anda membutuhkan lebih banyak dan saya akan menambahkannya!

@cloutier jika Anda mau, kami dapat membuatkan Anda repo di bawah ipfs org bernama php-ipfs-api dan Anda dapat meletakkan kode di sana

@whyrusleeping Saya ingin menerbitkannya dengan lisensi copyleft kuat yang sama dan saya tahu itu mungkin agak kontroversial. Apakah itu baik-baik saja dengan Anda?

Saya sekarang telah menyelesaikan pass pertama dari binding Swift API . Jangan ragu untuk berkomentar dan menggunakannya untuk proyek iOS/OS X IPFS Anda yang luar biasa dan untuk pindah ke ipfs org :)

@whyrusleeping Saya ingin menerbitkannya dengan lisensi copyleft kuat yang sama dan saya tahu itu mungkin agak kontroversial. Apakah itu baik-baik saja dengan Anda?

Hm. saya ragu-ragu dalam hal ini, tetapi akan sangat bersandar untuk menjaga semuanya di bawah ipfs org permisif sehingga pengguna tidak membuat kesalahan secara tidak sengaja.

@cloutier penasaran mengapa perlu salinan kuat yang tersisa untuk binding? yang secara ketat melarang penggunaan komersial, tempat di mana pengguna paling membutuhkan binding.

ortogonal untuk itu -- memikirkan lebih lanjut tentang ini -- kita pasti membutuhkan binding resmi di php yang permisif (MIT/BSD/Apache2). jika @cloutier tidak ingin membuatnya, kita akan membutuhkan yang lain.

@cloutier @jbenet Akankah LGPL menjadi kompromi yang masuk akal?

Tidak, AFAIK LGPL tidak kompatibel dengan MIT/BSD/Apache2.0

Saya telah memikirkannya lagi dan akan lebih baik untuk memilikinya di bawah lisensi yang longgar untuk mendapatkan lebih banyak proyek menggunakan standar terbuka seperti IPFS, dan dengan demikian lebih baik untuk perangkat lunak bebas secara umum. Apache 2.0 akan bagus.

@davidar LGPL bisa menjadi ide yang bagus. Ini akan memungkinkan penyematan dalam banyak lisensi (termasuk MIT dan bahkan kode kepemilikan) jika kode sumber setidaknya pengikatan tersedia, tetapi PHP adalah kasus yang aneh karena hampir hanya berjalan di server, dan klausa copyleft tidak dipicu pada kode server . Mungkin juga merilisnya di bawah lisensi permisif.

@jbenet Sebagai catatan, AGPL tidak berarti non-komersial . Saya tidak membutuhkan copyleft yang kuat karena alasan teknis, tetapi saya menginginkannya karena alasan politik.

terima kasih banyak @cloutier!

@cloutier Ya, saya pikir copyleft lebih masuk akal untuk aplikasi _di atas_ IPFS (seperti ipfs.pics), daripada perpustakaan tingkat rendah seperti ini.

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

Beberapa perpustakaan menerapkan standar gratis yang bersaing dengan standar terbatas, seperti Ogg Vorbis (yang bersaing dengan audio MP3) dan WebM (yang bersaing dengan video MPEG-4). Untuk proyek-proyek ini, penggunaan kode secara luas sangat penting untuk memajukan penyebab perangkat lunak bebas, dan lebih baik daripada copyleft pada kode proyek.

Dalam situasi khusus ini, kami merekomendasikan Apache License 2.0.

@davidar Merangkum dengan sangat baik apa yang telah saya pikirkan, terima kasih! :+1:

Saya memiliki awal dari binding PHP: https://github.com/cloutier/php-ipfs-api

Ini pada dasarnya adalah kode yang sama yang kami jalankan dalam produksi di ipfs.pics, tetapi dilisensikan di bawah Apache 2.0.

cc @mekarpeles

Terima kasih, bagaimana jika saya menggabungkan perpustakaan klien API ini ke dalam file di dalam ipfs/ipfs/clients (dan juga ipfs/ipfs/implementations) yang dapat kami perbarui?

Ini kemungkinan juga akan menjadi pengalaman yang lebih baik bagi orang yang mencoba mencari melalui perpustakaan klien (daripada masalah ini). Kami juga dapat menautkan ke masalah ini di dokumen sehingga orang dapat berkontribusi pada diskusi.

Ada yang menentang?

C#/.NET di sini . Saya menggunakan proyek ini untuk bekerja sehingga akan didukung/ditingkatkan setidaknya selama satu atau dua tahun.

Halo semua dan @PayasR @jbenet @MichaelMure khususnya,

Saya telah menerapkan pengikatan C++ API di sini: https://github.com/vasild/cpp-ipfs-api dan baru saja mendapatkan cakupan pengujiannya hingga 100% setelah beberapa perkelahian dengan Travis dan Coverall.

Sejauh ini blok, konfigurasi, file, generik, objek, pin, dan kumpulan metode API (https://github.com/ipfs/interface-ipfs-core/tree/master/API) telah diimplementasikan. Yang tersisa adalah yang dag dan dht yang akan saya coba selesaikan segera.

Semangat!

Halo semuanya! Saya harap Anda baik-baik saja! Saya bertanya-tanya apakah ada rencana untuk membuat pengikatan API di Visual Basic .NET?

Ada referensi untuk implementasi .NET .

@Coder206 Lihat https://github.com/richardschneider/net-ipfs-core dan https://github.com/richardschneider/net-ipfs-api.

Itu ditulis dalam C# tetapi harus dapat diakses dari VB.Net.

@jbenet saya ingin mendedikasikan klien php saya untuk ipfs https://github.com/digitalkaoz/php-ipfs. apinya lengkap, mencakup "driver" http+cli, dibuat secara otomatis dari dokumen resmi dan diuji dengan baik (setidaknya dalam beberapa hari;))

ini dilisensikan di bawah MIT , jadi saya pikir tidak ada masalah.

saya akan senang melihat repo saya ditransfer ke organisasi ipfs ...

@digitalkaoz itu luar biasa. Ingin mentransfernya kepada saya dan saya akan menambahkannya ke organisasi IPFS? Juga ingin menambahkannya ke daftar di https://github.com/ipfs/ipfs#api -client-libraries ?

btw semuanya, sekarang ada logo yang luar biasa untuk perpustakaan Klien HTTP. Saya telah melakukan PR ke semua yang ada di -- https://github.com/ipfs/ipfs#api -client-libraries --, jika milik Anda tidak ada, ini dia:

image

Juga, jika Anda membuat implementasi, pertimbangkan untuk merujuknya di https://github.com/ipfs/ipfs#api-client-libraries dan tinggalkan catatan tentang kelengkapannya :)

@diasdavid mari kita tambahkan ke daftar pustaka klien :) apakah Anda akan membuat PR atau haruskah saya?

@digitalkaoz pergi untuk itu :)

@diasdavid bagaimana dengan memindahkan https://github.com/vasild/cpp-ipfs-api ke https://github.com/ipfs/cpp-ipfs-api? Itu selesai terakhir kali saya menikmatinya, tetapi saya belum punya waktu untuk memeriksa apakah fungsi API baru telah ditambahkan setelah itu.

@vasild kita bisa melakukan itu. Apakah Anda masih tersedia untuk terus menjadi kapten untuk lib itu?

@diasdavid Saya berganti pekerjaan baru-baru ini dan belum dapat menemukan cukup waktu untuk memberi cpp-ipfs-api cinta (mis. periksa apakah fungsi baru telah ditambahkan ke API utama dan implementasikan jika itu masalahnya). Memindahkannya di bawah /ipfs/ akan meningkatkan visibilitasnya jadi mungkin orang lain juga akan berkontribusi. OTOH jika Anda tidak ingin mengadopsi kode yang ditulis oleh hanya satu pengembang yang tidak bekerja secara aktif maka mungkin lebih baik membiarkannya di bawah /vasild/. IMO akan lebih baik untuk memindahkannya ke /ipfs/ dan pada akhirnya saya akan menemukan waktu untuk bermain lebih jauh dengannya. Bagaimana menurutmu?

@vasild mengerti. Saya pikir pendekatan terbaik adalah mengikuti saran Anda dan menjelaskan status implementasi pada README + masalah terbuka untuk masalah yang diketahui + menyambut kontributor baru. Semua ini + pindah ke org IPFS.

Saya akan menyebutkan pustaka klien IPFS di IPFS All Hands berikutnya :)

@diasdavid membuka PR untuk daftar pustaka Klien

Pada Mi., 23. Agustus 2017, 17:37 Vasil Dimov [email protected] menulis:

@diasdavid https://github.com/diasdavid vasild/ cpp-ipfs-api@b1c557e
https://github.com/vasild/cpp-ipfs-api/commit/b1c557e7a1165ea38d20d5806a35979bfc0a2575
oke? (tidak ada masalah yang diketahui!)


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-324374905 , atau bisukan
benang
https://github.com/notifications/unsubscribe-auth/AAR611I4GWv1OJkoJNiLvIVJXQnwE_rzks5sbEcygaJpZM4FuFH9
.

@jbenet halo! Akan sangat bagus untuk mengubah tautan karat saat ini ke yang baru, karena sudah 2 tahun tidak diperbarui.. rust-ipfs-api
Implementasi saya masih mentah, tetapi berhasil!

@rmnoff bagus! Silakan buka PR untuk memasukkannya ke dalam daftar. (Contoh https://github.com/ipfs/ipfs/pull/265)

@vasild Terlihat bagus untuk saya :)

@diasdavid selesai! :)

Apakah ada minat dalam implementasi API Dart dan/atau Elixir? Saya tahu tidak ada bahasa yang secara khusus terdaftar tetapi saya pribadi akan menggunakan keduanya untuk berbagai aplikasi yang berbeda.

Lebih banyak lebih baik :)

Pada Sabtu, 7 Okt 2017, 11:00 Tensor-Programming [email protected]
menulis:

Apakah ada minat dalam implementasi API Dart dan/atau Elixir? Saya
tahu tidak ada bahasa yang secara khusus terdaftar tetapi saya pribadi akan menggunakan
baik untuk berbagai aplikasi yang berbeda.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-334917974 , atau bisukan
benang
https://github.com/notifications/unsubscribe-auth/ABL4HIInzOWvWTAIWjeRqR_mRuz22HC7ks5spy-ZgaJpZM4FuFH9
.

Saya telah membuat sedikit kemajuan (sekitar 65-70% dari perintah) pada elixir API. Jika Anda ingin melihatnya dan melihat apakah itu bisa dihabisi; Saya akan menghargainya. Saya masih perlu membangun banyak perintah serta dokumentasi dan modul pengujian (dan circleCI). Saya dapat mengatasi sebagian besar punuk yang sulit (dukungan bentuk multi-bagian, dll.) Jadi hanya masalah hari/minggu pada saat ini sampai saya memiliki jumlah fungsionalitas yang cukup baik yang diterapkan.

Ini reponya: https://github.com/tensor-programming/Elixir-Ipfs-Api

Sunting: Saya akan meninggalkan repo karena sepertinya tidak ada yang peduli? Sepertinya aku bahkan tidak mendapat tanggapan dari kalian dan ini sudah sebulan. Tidak ada gunanya memelihara perangkat lunak yang tidak akan digunakan siapa pun. Siapa pun yang tertarik untuk mengambil repo dan membangunnya beri tahu saya. Semua titik akhir API diimplementasikan hanya dengan fungsionalitas dasar. Tidak akan sulit untuk memperluasnya dan menambahkan sisanya.

Bagaimana dengan elm-ipfs-binding, apakah ada yang tertarik untuk memungkinkan ini?

Dapat menulis penjilidan Perl jika diperlukan.

haskell saya bersedia menjadi sukarelawan.

saya bisa menulis Objective-C , apakah ada daftar pekerjaan yang harus dilakukan?

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

Bagaimana dengan status pengembangan aplikasi seluler menggunakan IPFS?
Ada beberapa proyek untuk aplikasi Android, yang cukup bagus.
Langkah utama adalah pertama-tama memulai daemon ipfs di ponsel, dan melakukan beberapa pengunggahan file, dll.
Saya mencoba melakukan aplikasi seluler berdasarkan aplikasi Android saat ini, dan dapat mengekstraknya ke SDK Android.
Menurut pendapat saya, jika kita bisa mendapatkan lebih banyak pengembang atau perusahaan untuk menyimpan dan mengambil data mereka di sistem ipfs di aplikasi seluler, maka kemungkinan besar sistem tersebut dapat digunakan oleh banyak pengguna umum.
Apakah Anda punya rencana tentang ini atau apakah ada diskusi tentang itu?
@jbenet

Ipfs objc api?

ya, klien dan server dapat berbicara dengan alih-alih file, yang akan lebih banyak
efisien.

Pemberitahuan JM [email protected]于2018年9月13日周四 3:45写道:

Ipfs objc api?


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/ipfs/ipfs/issues/83#issuecomment-420914945 , atau bisukan
benang
https://github.com/notifications/unsubscribe-auth/ABPHvCWs76QmmERDY7oqtQOuSPJ2eF54ks5uag0JgaJpZM4FuFH9
.

Saya menulis satu set binding Common Lisp beberapa waktu lalu (yang lain menolak untuk bekerja di salah satu PC saya bahkan setelah beberapa mengutak-atik, dan tidak mendukung pubsub).

Ada di sebelah sini — ada cermin GitHub juga.

Terima kasih semua, kami sedang membersihkan repositori ini. Jika Anda memiliki kontribusi tambahan, beri tahu kami di https://discuss.ipfs.io .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

randomshinichi picture randomshinichi  ·  5Komentar

daviddias picture daviddias  ·  29Komentar

PayasR picture PayasR  ·  10Komentar

nbingham1 picture nbingham1  ·  19Komentar

myqq0000 picture myqq0000  ·  5Komentar