Răsfoiți Sursa

Updating IPFS documentation
- #83 added implementations + client-libraries
- #92 added getting started, added table of contents to main README.md
- adding moving backlog count next to roadmap
- moving project-directory.md to community, spec, and ipfs/README.md
- adding % column to client-apis and implementations

Mek Karpeles 10 ani în urmă
părinte
comite
0d2768e623
2 a modificat fișierele cu 92 adăugiri și 287 ștergeri
  1. 92 36
      README.md
  2. 0 251
      project-directory.md

+ 92 - 36
README.md

@@ -2,51 +2,32 @@
 
 [![ipfs](http://img.shields.io/irc/%23ipfs.png)](https://webchat.freenode.net/?channels=ipfs)
 
-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.
+Welcome to IPFS (the InterPlanetary File System)! Why not [watch a video](https://www.youtube.com/watch?v=8CMxDNuuAiQ) to get started?
 
-IPFS could become 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.
-
-#### IPFS IS A WORK IN PROGRESS
-
-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.
-
-[![Ready](https://badge.waffle.io/ipfs/ipfs.png?label=ready&title=Backlog)](https://waffle.io/ipfs/ipfs)
-
-## Security Issues
-
-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!
+## Table of Contents (links)
 
-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.
+- [Overview](#overview)
+- [How IPFS Works](#how-ipfs-works) ([Talks](#ipfs-talks)) ([Demos](#demos-and-examples))
+- [Current State of IPFS](#current-state-of-ipfs) ([Security Considerations](#security-issues))
+- [Get Started](https://ipfs.io/docs/getting-started) ([Installation](https://ipfs.io/docs/install), [Setup](https://ipfs.io/docs/getting-started#init-the-repo) & [Going Online](https://ipfs.io/docs/getting-started/#going-online))
+- [Specifications](https://github.com/ipfs/specs#ipfs-specs) ([Whitepapers](https://github.com/ipfs/papers))
+- [Language Implementations](#language-implementations)
+- [Client Libraries](#client-libraries)
+- [Community Projects](#community-projects)
+- [FAQs: Frequently Asked Questions](#faq)
+- [Contributing](CONTRIBUTE.md) & [Roadmap](https://github.com/ipfs/pm) [![Ready](https://badge.waffle.io/ipfs/ipfs.png?label=ready&title=Backlog)](https://waffle.io/ipfs/ipfs)
 
-## [Project directory](project-directory.md)
-Lost? Searching for something? Need to submit an issue? Want to contribute? Take a peek at [project-directory.md](project-directory.md) which maps out all the repositories for the ipfs project on Github.
+## Overview
 
+IPFS ([InterPlanetary File System](#why-the-name-ipfs)) is an Open Source 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 Talks
+IPFS could become 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.
 
 [![Alpha Demo](img/ipfs-alpha-video.png)](https://www.youtube.com/watch?v=8CMxDNuuAiQ)
 
-[![IPFS Talk](img/ipfs-talk.png)](https://www.youtube.com/watch?v=Fa4pckodM9g)
-
-
-## Design
-
-Please Read:
-
-- [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 - Toward The Permanent Web
+Want to see more? Check out Juan Benet's talk at Sourcegraph - [IPFS: The Permanent Web](https://www.youtube.com/watch?v=Fa4pckodM9g).
 
-## Implementations
-
-- [github.com/ipfs/go-ipfs](https://github.com/ipfs/go-ipfs) in Go. Status: Alpha (reference)
-
-- [node-ipfs](http://github.com/jbenet/node-ipfs) in js (on hold)
-
-If you would like to start one, please post an issue in this repository so I can help you. There is at present no "perfect spec" and many protocol details are still to be decided upon.
-
-## Summary
+## How IPFS Works
 
 IPFS is a protocol:
 - defines a content-addressed file system
@@ -93,6 +74,81 @@ IPFS has a name service:
 - compatible with other NSes
 - can map DNS, .onion, .bit, etc to IPNS
 
+## Current State of IPFS
+
+### IPFS is a work in progress!
+
+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.
+
+### Security Issues
+
+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.
+
+## Demos & Examples
+
+* [container-demos](https://github.com/ipfs/container-demos)
+    Demos on how to boot docker images and VMs.
+
+* [examples](https://github.com/ipfs/examples)
+    Examples on how to use go-ipfs.
+
+
+# Language Implementations
+
+For a list of IPFS API Client Libraries, please refer to *[Client Libraries](#client-libraries)*
+
+| Language | Project | Completeness |
+|----------|---------|--------------|
+| Go (reference) | https://github.com/ipfs/go-ipfs | |
+| Javascript | https://github.com/ipfs/js-ipfs | |
+| Python | https://github.com/ipfs/py-ipfs | |
+| Haskell | https://github.com/cleichner/haskell-ipfs | |
+| .net | https://github.com/wasabii/dotnet-ipfs | |
+| C++ | https://github.com/subtly/cpp-ipfs | |
+| Rust | https://github.com/rschulman/rust-ipfs | |
+
+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). There is at present no "perfect spec" and many protocol details are still to be decided upon.
+
+## Client Libraries
+
+For a list of IPFS implementations, please refer to *[Language Implementations](#language-implementations).
+
+| Language | Client Library | Completeness |
+|----------|----------------|--------------|
+| Go | https://github.com/ipfs/go-ipfs-api | |
+| Java | https://github.com/ipfs/java-ipfs-api | |
+| Javascript | https://github.com/ipfs/js-ipfs-api | |
+| Python | https://github.com/ipfs/python-ipfs-api | |
+| Scala | https://github.com/ipfs/scala-ipfs-api | |
+| Haskell | https://github.com/davidar/hs-ipfs-api | |
+| Swift | https://github.com/ipfs/swift-ipfs-api | |
+| CommonLisp | https://github.com/WeMeetAgain/cl-ipfs-api | |
+| Rust | https://github.com/rschulman/rust-ipfs-api | |
+| Ruby | https://github.com/Fryie/ipfs-ruby | |
+| Swift | https://github.com/NeoTeo/ipfs-osx-service | |
+| PHP | https://github.com/cloutier/php-ipfs-api | |
+| C/C++ | contact: [@PayasR](https://github.com/PayasR) | 0% |
+| Julia | contact: [@rened](https://github.com/rened) | 0% |
+| Lua | contact: [@seclorum](https://github.com/seclorum) | 0% |
+| Erlang | ! | 0% |
+| Objective C | ! | 0% |
+
+Want to contribute one of the above client libraries? [Tell us](https://github.com/ipfs/ipfs/issues/83) so we can help!
+
+# Community Projects
+
+| Project | Description |
+|---------|-------------|
+| [astralboot](https://github.com/ipfs/astralboot) | A low level boot server that deploys directly out of IPFS.|
+| [ipfs-web-app](https://github.com/ipfs/ipfs-web-app) | IPFS web app interface. |
+| [starlog](https://github.com/ipfs/starlog) | Logging the development of an interplanetary filesystem. This will evenutlaly be a way of making blog posts with IPFS. |
+| [station](https://github.com/ipfs/station) | Electron Shell based IPFS app. |
+| [webui](https://github.com/ipfs/webui) | The IPFS webui accessible from the api gateway typically at port 500.1 |
+
 
 ## FAQ
 

+ 0 - 251
project-directory.md

@@ -1,251 +0,0 @@
-IPFS Project Directory
-======================
-These are all the repos found in the IPFS Github organization. If you still can't find what you're looking for, try [searching Github]( https://github.com/search?utf8=%E2%9C%93&q=user%3Aipfs).
-
-Note: The repository descriptions (ought to) originate from the GitHub repository descriptions. Please make sure that those descriptions and these are synced.
-
-## Table of Contents
-
-- [Top level updates](#top-level-updates)
-- [Documents](#documents)
-- [Discussions](#discussions)
-    - [Specification Discussions](#specification-discussions)
-- [Implementations](#implementations)
-    - [Active](#active)
-    - [In Development](#in-development)
-    - [APIs](#apis)
-    - [Specs](#specs)
-- [Applications](#applications)
-- [Demos and Examples](#demos-and-examples)
-- [Community Resources](#community-resources)
-- [Tools](#tools)
-- [Random modules](#random-modules)
-
-## Top level updates
-
-* [ipfs](https://github.com/ipfs/ipfs)  
-    IPFS - The Permanent Web.
-
-## Documents
-* [papers](https://github.com/ipfs/papers)  
-    Academic papers on IPFS.
-
-* [specs](https://github.com/ipfs/specs)  
-    Specifications on the IPFS protocol.
-
-## Discussions
-
-* [apps](https://github.com/ipfs/apps)  
-    Coordinating writing apps on top of ipfs, and their concerns.
-
-* [archives](https://github.com/ipfs/archives)  
-    Repo to coordinate archival efforts with IPFS.
-
-* [faq](https://github.com/ipfs/faq)  
-    Frequently Asked Questions, and answers. Look at the issues.
-
-* [notes](https://github.com/ipfs/notes)  
-    Various relevant notes and discussions (that do not fit elsewhere).
-
-### Specification Discussions
-
-* [archive-format](https://github.com/ipfs/archive-format)  
-    A discussion repository for the archive format spec.
-
-* [bitswap-ml](https://github.com/ipfs/bitswap-ml)  
-    bitswap + ml.
-
-* [blockchain-data](https://github.com/ipfs/blockchain-data)  
-    Using IPFS for storing data for Blockchain apps.
-
-## Implementations
-
-### Active
-
-* [go-ipfs](https://github.com/ipfs/go-ipfs)  
-    An IPFS implementation in golang. 
-
-### In Development
-
-* [js-ipfs](https://github.com/ipfs/js-ipfs)  
-    An IPFS implementation in Node.js.
-
-* [py-ipfs](https://github.com/ipfs/py-ipfs)  
-    Python implementation of IPFS.
-
-### APIs
-
-* [go-ipfs-api](https://github.com/ipfs/go-ipfs-api)  
-    An unofficial go interface to IPFS's http API.
-
-* [java-ipfs-api](https://github.com/ipfs/java-ipfs-api)  
-    A Java implementation of the HTTP IPFS API.
-
-* [js-ipfs-api](https://github.com/ipfs/js-ipfs-api)  
-    A client library for the IPFS HTTP API, implemented in JavaScript.
-
-* [python-ipfs-api](https://github.com/ipfs/python-ipfs-api)  
-    A python client library for the IPFS API.
-
-* [scala-ipfs-api](https://github.com/ipfs/scala-ipfs-api)  
-    A wrapper of the IPFS Client HTTP-API  for Scala.
-
-* [swift-ipfs-api](https://github.com/ipfs/swift-ipfs-api)  
-    A Swift client library for the IPFS API.
-
-### Specs
-
-* [go-ipld](https://github.com/ipfs/go-ipld)  
-    This is the Go implementation of the IPLD spec.
-
-* [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
-
-## Applications
-
-* [astralboot](https://github.com/ipfs/astralboot)  
-    A low level boot server that deploys directly out of IPFS.
-
-* [ipfs-web-app](https://github.com/ipfs/ipfs-web-app)  
-    IPFS web app interface.
-
-* [starlog](https://github.com/ipfs/starlog)  
-    Logging the development of an interplanetary filesystem. This will evenutlaly be a way of making blog posts with IPFS.
-
-* [station](https://github.com/ipfs/station)  
-    Electron Shell based IPFS app.
-
-* [webui](https://github.com/ipfs/webui)  
-    The IPFS webui accessible from the api gateway typically at port 5001.
-
-## Demos and Examples
-
-* [container-demos](https://github.com/ipfs/container-demos)  
-    Demos on how to boot docker images and VMs.
-
-* [examples](https://github.com/ipfs/examples)  
-    Examples on how to use go-ipfs.
-
-## Community Resources
-
-* [awesome-ipfs](https://github.com/ipfs/awesome-ipfs)  
-    Useful resources for using IPFS and building things on top of it.
-
-* [blog](https://github.com/ipfs/blog)  
-    IPFS Blog.
-
-* [community](https://github.com/ipfs/community)  
-    General discussion and documentation on community practices.
-
-* [infrastructure](https://github.com/ipfs/infrastructure)  
-    Tools and systems for the community.
-
-* [ipfs-readme-standard](https://github.com/ipfs/ipfs-readme-standard)  
-    Standardize all IPFS Readme.md's and other markdown files
-
-* [logo](https://github.com/ipfs/logo)  
-    The logo for IPFS.
-
-* [meetup-lisbon](https://github.com/ipfs/meetup-lisbon)  
-    The IPFS meetup in Lisbon.
-
-* [pm](https://github.com/ipfs/pm)  
-    General project management.
-
-* [support](https://github.com/ipfs/support)  
-    For questions on how to get IPFS up and running smoothly.
-
-* [website](https://github.com/ipfs/website)  
-    The source to the IPFS community website at http://ipfs.io.
-
-## Tools
-
-* [api](https://github.com/ipfs/api)  
-    The APIs IPFS implementations must conform to, with planned test suites to check conformity.
-
-* [dataviz](https://github.com/ipfs/dataviz)  
-    IPFS data visualizations.
-
-* [dir-index-html](https://github.com/ipfs/dir-index-html)  
-    Directory listing html.
-
-* [distributions](https://github.com/ipfs/distributions)  
-    Script to build the /install html page.
-
-* [ci-status](https:?/github.com/ipfs/ci-status)  
-    ci status for the ipfs project
-
-* [dnslink-deploy](https://github.com/ipfs/dnslink-deploy)  
-    Automatically set DNS records on Digital Ocean.
-
-* [file-browser](https://github.com/ipfs/file-browser)
-    generic-ipfs-file-browser-ui-thing
-
-* [fs-repo-migrations](https://github.com/ipfs/fs-repo-migrations)  
-    These are migrations for the filesystem repository of IPFS clients.
-
-* [fs-stress-test](https://github.com/ipfs/fs-stress-test)  
-    This repo will stress test IPFS filesystem capabilities.
-
-* [go-blocks](https://github.com/ipfs/go-blocks)  
-    Go-blocks - IPFS blocks.
-
-* [go-commands](https://github.com/ipfs/go-commands)  
-    Go commands. WIP.
-
-* [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.
-
-* [install-go-ipfs](https://github.com/ipfs/install-go-ipfs)  
-    Install go-ipfs shell script.
-
-* [ipfs-geoip](https://github.com/ipfs/ipfs-geoip)  
-    Geoip over ipfs
-
-* [ipfs-js-defaults](https://github.com/ipfs/ipfs-js-defaults)  
-    Sane defaults for IPFS node configurations.
-
-* [ipfs-update](https://github.com/ipfs/ipfs-update)  
-    An updater tool for ipfs
-
-* [js-ipfsd-ctl](https://github.com/ipfs/js-ipfsd-ctl)  
-    Control an IPFS daemon (WIP).
-
-* [js-ipfs-path](https://github.com/ipfs/js-ipfs-path)  
-    Javascript helper functions for IPFS path handling
-
-* [npm-go-ipfs](https://github.com/ipfs/npm-go-ipfs)  
-    Install go-ipfs from npm.
-
-## Random modules
-
-* [ipfs.js](https://github.com/ipfs/ipfs.js)  
-    A squatted repo, for future client side IPFS js.
-
-* [ipfs-blob-store](https://github.com/ipfs/ipfs-blob-store)  
-    A place to buy blobs.
-
-* [ipfs-hubot](https://github.com/ipfs/ipfs-hubot)  
-    hubot for IPFS (WIP!!).
-
-* [ipfs-npm](https://github.com/ipfs/ipfs-npm)  
-    npm on IPFS
-
-* [refs](https://github.com/ipfs/refs)  
-    DMCA notices, and tools for publishing them https://ipfs.io/refs/lists/denylists/dmca
-
-* [refs-denylists-dmca](https://github.com/ipfs/refs-denylists-dmca)  
-    DMCA takedown notices
-
-* [refs-solarnet-storage](https://github.com/ipfs/refs-solarnet-storage)
-    Inventory of content archived on Solarnet storage hosts https://github.com/ipfs/archives
-