IPFS ([the InterPlanetary File System](https://github.com/ipfs/faq/issues/76)) is a new hypermedia distribution protocol, addressed by content and identities. IPFS enables the creation of completely distributed applications. It aims to make the web faster, safer, and more open.
IPFS is a distributed file system that seeks to connect all computing devices with the same system of files. In some ways, this is similar to the original aims of the Web, but IPFS is actually more similar to a single bittorrent swarm exchanging git objects. You can read more about its origins in the paper [IPFS - Content Addressed, Versioned, P2P File System](https://github.com/ipfs/ipfs/blob/master/papers/ipfs-cap2pfs/ipfs-p2p-file-system.pdf?raw=true).
IPFS is becoming a new major subsystem of the internet. If built right, it could complement or replace HTTP. It could complement or replace even more. It sounds crazy. It _is_ crazy.
To learn more about how IPFS works take a look at the [Papers](#ipfs-papers) or [Talks](#ipfs-talks). You can also explore the [Specs](https://github.com/ipfs/specs) in writing.
- 2015-06-03 - [IPFS Hands on Introduction](https://www.youtube.com/watch?v=h73bd9b5pPA) at Ethereum SV Meetup
- **2015-10-22 - [IPFS: The Distributed, Permanent Web](https://www.youtube.com/watch?v=HUVmypx9HGI) at Stanford Seminar (best overview of project)**
## More About IPFS
The IPFS project seeks to evolve the infrastructure of the Internet and the Web, with many things we've learned from successful systems, like [Git](http://git-scm.com/), [BitTorrent](http://bittorrent.org/), [Kademlia](http://en.wikipedia.org/wiki/Kademlia), [Bitcoin](http://bitcoin.org), and many, many more. This is the sort of thing that would have come out of ARPA/DARPA/IETF/BellLabs in another age. IPFS is a Free Open Source project, with hundreds of contributors.
Please note that IPFS is a work in progress. It is an ambitious plan to make the internet more free, open, secure, and high performance. It builds on the good ideas of numerous battle-tested distributed systems.
Today, there is one main IPFS Protocol implementation (in [Go](https://github.com/ipfs/go-ipfs)) with [more on the way](#protocol-implementations) ([Javascript](https://github.com/ipfs/js-ipfs), and [Python](https://github.com/ipfs/py-ipfs)).
### Alpha Distribution
In February of 2015, the [go-ipfs](https://github.com/ipfs/go-ipfs) implementation was released as an "Alpha Distribution". Since then, go-ipfs has been making regular releases on the road towards Beta. Both [js-ipfs](https://github.com/ipfs/js-ipfs) and [py-ipfs](https://github.com/ipfs/py-ipfs) are in progress.
The IPFS protocol and its implementations are still in heavy development. This means that there may be problems in our protocols, or there may be mistakes in our implementations. And -- though IPFS is not production-ready yet -- many people are already running nodes in their machines. So we take security vulnerabilities very seriously. If you discover a security issue, please bring it to our attention right away!
If you find a vulnerability that may affect live deployments -- for example, by exposing a remote execution exploit -- please send your report privately to security@ipfs.io. Please DO NOT file a public issue.
If the issue is a protocol weakness that cannot be immediately exploited or something not yet deployed, just discuss it openly.
The IPFS Project is now very large, with hundreds of contributors in our community. You are invited to join it! Here are some links to our communication channels:
The IPFS Project is big -- there are many efforts subprojects and related efforts. We will document the core efforts here, though look around. The space is exploding and lots of new projects are springing up all the time.
If you would you like to start your own language implementation of IPFS, check out the [IPFS Implementation Guide](https://github.com/ipfs/specs/blob/overviews/overviews/implement-ipfs.md), and the [Specifications](https://github.com/ipfs/specs). The specs are still evolving, but the core formats are stable and can be built on. Make sure to post an issue if you would like to start an effort, as many people have expressed interest in contributing to new implementations.
Please help by contributing to one of the above client libraries. If you would like to create another, please see the [IPFS API Client Implementation Guide](https://github.com/ipfs/go-ipfs/blob/master/docs/implement-api-bindings.md), and [tell us](https://github.com/ipfs/ipfs/issues/83) so we can help!
### Project Directory
This aims to be a directory of all the various repos in the [IPFS Github Organization](github.com/ipfs), and other closely related things.
#### Project Oranization
* [ipfs](https://github.com/ipfs/ipfs) master repo, intro, and news
* [faq](https://github.com/ipfs/faq) Frequently Asked Questions, and answers.Look at the issues
* [community](https://github.com/ipfs/community) Community Discussions and documentation on community practices
* [pm](https://github.com/ipfs/pm) Community Sprints and Project Management
#### Get Help!
* [faq](https://github.com/ipfs/faq) Frequently Asked Questions, and answers.Look at the issues
* [support](https://github.com/ipfs/support) Support and Help with running IPFS. Post an Issue and we will help there or route you.
We encourage and support IPFS Meetups, please let us know if you would like to start one. Feel free to organize yourself through [the Community discussions](https://github.com/ipfs/community/issues) and [to advertise events in the main repository](https://github.com/ipfs/ipfs/issues).
* [ipfs-update](https://github.com/ipfs/ipfs-update) An updater tool for ipfs
* [fs-repo-migrations](https://github.com/ipfs/fs-repo-migrations) these are migrations for [IPFS fs-repo](https://github.com/ipfs/specs/blob/repo/fs-repo) versions.
* [npm-go-ipfs](https://github.com/ipfs/npm-go-ipfs) install go-ipfs from npm.
* [api](https://github.com/ipfs/api) The APIs IPFS implementations must conform to, with planned test suites to check conformity.
* [go-ipld](https://github.com/ipfs/go-ipld) implementation of [the IPLD spec](https://github.com/ipfs/specs/tree/master/merkledag/ipld.md) in Go
* [js-ipfs-repo](https://github.com/ipfs/js-ipfs-repo) implementation of [the IPFS repo spec](https://github.com/ipfs/specs/tree/master/repo) in Javascript
* [go-ipfs-util](https://github.com/ipfs/go-ipfs-util) common utilities used by go-ipfs and other related go packages
* [go-iprs](https://github.com/ipfs/go-iprs) go-ipfs records.
* [go-libp2p](https://github.com/ipfs/go-libp2p) libp2p is a networking stack and library modularized out of The IPFS Project, and bundled separately for other tools to use.
* [go-log](https://github.com/ipfs/go-log) a logging library used by go-ipfs.
* [js-ipfs-path](https://github.com/ipfs/js-ipfs-path) Javascript helper functions for IPFS path handling
* [ipfs.js](https://github.com/ipfs/ipfs.js) IPFS on the Browser
* [ipfs-blob-store](https://github.com/ipfs/ipfs-blob-store) A place to buy blobs.