Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 83 lines (60 sloc) 3.086 kb
bfc114bc » notmyname
2012-09-12 new more helpful README
1 # Swift
2
3 A distributed object storage system designed to scale from a single machine
4 to thousands of servers. Swift is optimized for multi-tenancy and high
5 concurrency. Swift is ideal for backups, web and mobile content, and any other
6 unstructured data that can grow without bound.
7
8 Swift provides a simple, REST-based API fully documented at
9 http://doc.openstack.org/.
10
11 Swift was originally developed as the basis for Rackspace's Cloud Files and
12 was open-sourced in 2010 as part of the OpenStack project. It has since grown
13 to include contributions from many companies and has spawned a thriving
14 ecosystem of 3rd party tools. Swift's contributors are listed in the AUTHORS
15 file.
16
17 ## Docs
18
19 To build documentation install sphinx (`pip install sphinx`), run
20 `python setup.py build_sphinx`, and then browse to /doc/build/html/index.html.
21 These docs are auto-generated after every commit and available online at
22 http://docs.openstack.org/developer/swift/.
23
24 ## For Developers
25
26 The best place to get started is the ["SAIO - Swift All In One"](http://docs.openstack.org/developer/swift/development_saio.html).
27 This document will walk you through setting up a development cluster of Swift
28 in a VM. The SAIO environment is ideal for running small-scale tests against
29 swift and trying out new features and bug fixes.
30
31 You can run unit tests with `.unittests` and functional tests with
32 `.functests`.
33
34 ### Code Organization
35
36 * bin/: Executable scripts that are the processes run by the deployer
37 * doc/: Documentation
38 * etc/: Sample config files
39 * swift/: Core code
40 * account/: account server
41 * common/: code shared by different modules
42 * middleware/: "standard", officially-supported middleware
43 * ring/: code implementing Swift's ring
44 * container/: container server
45 * obj/: object server
46 * proxy/: proxy server
47 * test/: Unit and functional tests
48
49 ### Data Flow
50
51 Swift is a WSGI application and uses eventlet's WSGI server. After the
52 processes are running, the entry point for new requests is the `Application`
53 class in `swift/proxy/server.py`. From there, a controller is chosen, and the
54 request is processed. The proxy may choose to forward the request to a back-
55 end server. For example, the entry point for requests to the object server is
56 the `ObjectController` class in `swift/obj/server.py`.
57
58
59 ## For Deployers
60
61 Deployer docs are also available at
62 http://docs.openstack.org/developer/swift/. A good starting point is at
63 http://docs.openstack.org/developer/swift/deployment_guide.html
64
65 You can run functional tests against a swift cluster with `.functests`. These
66 functional tests require `/etc/swift/test.conf` to run. A sample config file
67 can be found in this source tree in `test/sample.conf`.
68
69 ## For Client Apps
70
71 For client applications, official Python language bindings are provided at
72 http://github.com/openstack/python-swiftclient.
73
74 Complete API documentation at
75 http://docs.openstack.org/api/openstack-object-storage/1.0/content/
76
77 ----
78
79 For more information come hang out in #openstack-swift on freenode.
80
81 Thanks,
82
83 The Swift Development Team
Something went wrong with that request. Please try again.