# Downloading from IPFS without running daemon

**URL:** <https://discuss.ipfs.tech/t/downloading-from-ipfs-without-running-daemon/61>\
**Category:** Help\
**Created:** [January 13, 2017, 10:26pm UTC](https://discuss.ipfs.tech/t/downloading-from-ipfs-without-running-daemon/61 "2017-01-13T22:26:34Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![felipe](https://avatars.discourse-cdn.com/v4/letter/f/90db22/32.png) [@felipe](https://discuss.ipfs.tech/u/felipe)\
**Post date:** [January 13, 2017, 10:26pm UTC](https://discuss.ipfs.tech/t/downloading-from-ipfs-without-running-daemon/61/1 "2017-01-13T22:26:35Z")

</div>

If I make a desktop application, is there any way to download a file from IPFS without asking users to install and run the IPFS daemon? I’d like to take advantage of IPFS without asking users to get through the hassle of running the daemon, so I was wondering if there is any library that could replace the daemon to download a file.

---

<div class="post-metadata">

**Author:** ![Mateon1](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@Mateon1](https://discuss.ipfs.tech/u/Mateon1)\
**Post date:** [January 14, 2017, 12:44pm UTC](https://discuss.ipfs.tech/t/downloading-from-ipfs-without-running-daemon/61/2 "2017-01-14T12:44:27Z")

</div>

Your application can come bundled with an IPFS daemon, and start it when your application is started. That is how [Orbit](https://github.com/haadcode/orbit) works when launched as a standalone electron app.

---

<div class="post-metadata">

**Author:** ![mukka](https://avatars.discourse-cdn.com/v4/letter/m/e68b1a/32.png) [@mukka](https://discuss.ipfs.tech/u/mukka)\
**Post date:** [January 14, 2017, 9:14pm UTC](https://discuss.ipfs.tech/t/downloading-from-ipfs-without-running-daemon/61/3 "2017-01-14T21:14:20Z")

</div>

> Your application can come bundled with an IPFS daemon

does this only work for Go and Javascript applications, or can I bundle the daemon in any language?

---

<div class="post-metadata">

**Author:** ![Mateon1](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@Mateon1](https://discuss.ipfs.tech/u/Mateon1)\
**Post date:** [January 15, 2017, 9:21am UTC](https://discuss.ipfs.tech/t/downloading-from-ipfs-without-running-daemon/61/4 "2017-01-15T09:21:04Z")

</div>

You can use a bundled IPFS with any language, using the HTTP api that IPFS provides. There exist libraries for interfacing with the IPFS HTTP API comfortably in many languages: [https://github.com/ipfs/ipfs#api-client-libraries](https://github.com/ipfs/ipfs#api-client-libraries)

I’m not sure on how js-ipfs works, but it might have its own API available to other Javascript on a webpage.

---

<div class="post-metadata">

**Author:** ![JayBrown](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/jaybrown/32/107_2.png) [@JayBrown](https://discuss.ipfs.tech/u/JayBrown)\
**Post date:** [May 30, 2017, 10:03am UTC](https://discuss.ipfs.tech/t/downloading-from-ipfs-without-running-daemon/61/5 "2017-05-30T10:03:43Z")

</div>

As said above, you need your own node bundled with your software; that’s what [**ipget**](https://github.com/ipfs/ipget) is doing, for example.

And of course, you can always download from an exit node, e.g. `curl -o /path/to/downloadedFile https://ipfs.io/ipfs/ipfsHash`, but that’s probably not what you’re looking for. 🙂

---

<div class="post-metadata">

**Author:** ![VictorBjelkholm](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/victorbjelkholm/32/10_2.png) [@VictorBjelkholm](https://discuss.ipfs.tech/u/VictorBjelkholm)\
**Post date:** [May 30, 2017, 12:40pm UTC](https://discuss.ipfs.tech/t/downloading-from-ipfs-without-running-daemon/61/6 "2017-05-30T12:40:17Z")

</div>

A temporary work-around for something that only has access to HTTP and unable to run a js/go-ipfs daemon as well is to use the public gateways that are available via [ipfs.io](http://ipfs.io). So if you have the hash `QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T` and want to get the file `readme` from there, you can do `curl https://ipfs.io/ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readme`
