question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Since #1 is clogged with all the many comments I open a new issue here. Feel free to continue the discussion below and I’ll keep the following updated as things develop. Also feel free to create separate issues / repos to coordinate and I’ll add the relevant links below.

Next steps (networking, stalled – please see the “storage” section below):

Next steps (storage, simpler):

  1. Port https://github.com/ipfs/py-datastore to Python 3
    (Suggestion: Use Python’s lib2to3 and just drop Python 2 entirely.)
  2. Convert datastore to use async/await using some library (maybe https://pypi.org/project/aiofiles/ ?) for file access The trio framework is used for async I/O now
  3. Implement a https://github.com/ipfs/go-ds-flatfs compatible backend for the above library
  4. Write a minimal py-ipfs “implementation” that can fetch blocks from the local $IPFS_PATH directory and expose them with an API similar to what https://github.com/ipfs/py-ipfs-http-client currently offers (goal here is to eventually have a drop-in replacement)
    • In progress by @alexander255 (no public code yet, most work happens in py-datastore)
  5. Implement a simple Python HTTP server that emulates the block/{get,put,rm,stat} API that serves blocks from the local $IPFS_PATH directory
  6. (Stretch goal) Implement a badgerds compatible backend for py-datastore
    • There is an issue requesting Python bindings for the Go library, but no work has been done yet:
      dgraph-io/badger#984
  7. Beyond: Start integrating IPLD to expose the UnixFS files stored in those raw blocks…

Issue Analytics

  • State:open
  • Created 5 years ago
  • Comments:12 (9 by maintainers)

github_iconTop GitHub Comments

6reactions
fubuloubucommented, Feb 15, 2021

Out of sheer morbid curiousity, has anyone thought about re-thinking this library as a light wrapper around the C++, Rust, or Go implementations instead? (Using C API, PyO3, or gopy)

Python is a great systems integration language, but a pure Python implementation seems like it’d be very slow and lagging behind the other compiled implementations with more funding.


Also, I am aware of the HTTP client library… just seemed like a direct integration with Python bindings might be safer with less overhead than communicating over HTTP. I’ve not had a great experience with the HTTP client either.

2reactions
MirceaKitsunecommented, Feb 22, 2019

Also, 1 more thing. What is the exact purpose of py-ipfs? We all know python is slow. So we are definitely not trying to replace the go and js versions. So, what is the exact goal?? If we know the goal, we can write code and documentation accordingly.

Python support will be very important. It’s one of the most popular scripting languages after JavaScript and used by numerous projects. To name just a few from my area of knowledge: The Blender 3D animation software and Godot game engine both use Python (named GDScript for the later) for addons and development. With a native Python implementation of IPFS, the daemon could be included in such software allowing it to directly work with files within the IPFS network… this is just one huge advantage I can immediately point out.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Next Steps Center
For questions about Next Steps Center or UA Admissions: UA Admissions is available Monday-Friday, 8am-5pm (excluding holidays). Call 520-621-5293 or email ...
Read more >
Next Steps Idaho
Next Steps Idaho - College and career planning resources for high school students from the Idaho State Board of Education.
Read more >
Next Steps of OConnor Foundation - Redefining Rehabilitation
Next Steps was the first free standing, non-profit physical therapy and exercise facility devoted to the rehabilitation and overall wellness of people living ......
Read more >
Next Steps – The Colony
Next Steps is a non-profit organization that helps people in The Colony, Texas who are either currently in crisis, or who need coaching...
Read more >
NextSteps
NextSteps is an interactive program to help you manage your life after a serious injury. It will help you explore the ways your...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found