{ "info": { "author": "Merchise Autrement [~\u00ba/~]", "author_email": "", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python" ], "description": "===============================================\n KairCS - Small File Cloud System over Riak KV\n===============================================\n\nThis project allows to put mostly immutable files (written once,\nupdated mostly never) on a Riak KV store, that are read sequentially\n(no random access to a file is supported).\n\nThis project is not meant to be a substitute of Riak CS:\n\n- There's a single file space in KairCS. No butcket, no users. It's\n almost a file-system you can write to, that expects your files don't\n change much.\n\n- No encryption of data.\n\n\nArchitecture\n============\n\nKairCS is split in two main components:\n\n- The KairCS Very Simple Blob Store\n- The KairCS Service\n\n\nKairCS Very Simple Blob Store (VSBS)\n------------------------------------\n\nIt's responsible to actually manage the storage of blobs. It DOES NOT\nkeep a notion of directories so there's no way to list all the blobs\nin the store. In fact, this layer support only two operations:\n\n- Write a blob\n- Read a blob from begin to end\n\nThe `KiarCS Service`_ leverage these function to provide *some*\nsupport for listing and deletion.\n\nWhen storing a blob, you must provide a name which is used to create a\n*master key* of the blob. The master key is actually a SHA256 of the\nblob name.\n\nThe blob is divided in chunks of 1 MB. Each chunk is stored\nindividually under an automatically generated key composed by the\nblob's *master key* and a counter.\n\nThe first chunk contains both metadata and data. The metadata record\nis like this::\n\n record metadata {\n\n uint8 metadata_size;\n # The size of the metadata including this byte. Currently this\n # is 1 + 8 bytes.\n\n uint64 size_of_the_blob;\n }\n\nThe maximum size of the first chunk is thus 1\u00a0MB plus 9 bytes. Other\nchunks are just data and the size of the chunk is the size of the\ndata.\n\nTo write a blob you need the name and the size. To read a blob you\njust need the name.\n\nVSBS store the chunks in Riak KV.\n\n\n\nKiarCS Service\n--------------\n\nThis is a high level component. It exposes a REST API over HTTP/1.1:\n\n``GET /path/to/x``\n\n Read the file or directory under the given path. It may return 404\n if the file is not found.\n\n .. todo:: If path is a directory, reply with a 300 Multiple Choices?\n\n\n``PUT /path/to/a/file``\n\n Create or replace the file under the given path.\n\n If the given path exists and points to a directory, reply with a 400\n Bad request.\n\n This method creates the directories as needed.\n\n Trying to upload large files may fail if the client does not support\n chunked transfer.\n\n The Content-Length header MUST be sent\n\n .. todo:: Chunked response replies.\n\n\n``DELETE /path/to/a/file``\n\n Remove the file. Deleting a directory is not supported. If by\n removing a file a directory becomes empty further requests for the\n directory MAY get 404 responses.\n\n\nSecurity\n~~~~~~~~\n\nRiakCS has no authentication mechanism. You must ensure that only\nauthoritative parties may reach the server. A common way to deploy it\nis behind a nginx proxy\n\n\nConfiguration\n-------------\n\nWhen setting up a KiarCS cluster you must:\n\n- Set up as many Riak KV nodes you need that match your space and RAM\n requirement.\n\n Join them in a cluster.\n\n See the document `Configure Riak KV for KiarCS`.\n\n- Set up Kiar CS nodes and connect them to the Riak KV nodes.\n There're several possible configurations:\n\n - 1 to 1.\n - 1 to many.\n\n See the document `KiarCS cluster layout`.\n\n\nCopyright and license\n=====================\n\nCopyright (c) Merchise Autrement [~\u00ba/~] and Contributors.\n\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the :abbr:`GNU (GNU is Not Unix)` General Public\nLicense as published by the Free Software Foundation, either version 3\nof the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See\nthe:abbr:`GNU (GNU is Not Unix)` General Public License for more\ndetails. You should have received a copy of the :abbr:`GNU (GNU is\nNot Unix)` General Public License along with this program. If not,\nsee http://www.gnu.org/licenses/.\n\n..\n Local Variables:\n fill-column: 70\n End:\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.merchise.org/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "kaircs", "package_url": "https://pypi.org/project/kaircs/", "platform": "", "project_url": "https://pypi.org/project/kaircs/", "project_urls": { "Homepage": "http://www.merchise.org/" }, "release_url": "https://pypi.org/project/kaircs/0.4.0/", "requires_dist": [ "six (>=1.8.0)", "basho-erlastic (>=2.1.1)", "flask (>=0.12.2)", "protobuf (<2.7.0,>=2.4.1)", "xoutil (<2.0,>=1.9.3); python_version < \"3.6\"", "xoutil (>=1.9.3); python_version >= \"3.6\"" ], "requires_python": "", "summary": "A small File Cloud Storage over Riak KV", "version": "0.4.0" }, "last_serial": 4346141, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ae4ef5344a1b47d1f2a6c492b6f6263c", "sha256": "3be307044ed7901fa8cb7e0d3fb43f3683bb3fe60e386d093b7e53295aaf5f74" }, "downloads": -1, "filename": "kaircs-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ae4ef5344a1b47d1f2a6c492b6f6263c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15606, "upload_time": "2017-11-22T17:25:37", "url": "https://files.pythonhosted.org/packages/50/fd/8169122bcb3be4c2f5555a6d9812b6a108fa22dc48f3f8a6e34f9b161e12/kaircs-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e6d9577015339a1bb87cbf8ab61003d", "sha256": "089bb85ec4c3207bc127399cb5c87f2a1790025768051fe53e2c76b1a564e514" }, "downloads": -1, "filename": "kaircs-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6e6d9577015339a1bb87cbf8ab61003d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13130, "upload_time": "2017-11-22T17:25:39", "url": "https://files.pythonhosted.org/packages/d2/c4/0f1e360421cc460203d74eee32062bc23768eb6cc12c01b6f3d7dce0be4e/kaircs-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "4850da7a4dd0f0b793020e7de743ec5a", "sha256": "c526b9adc87b46f7074538295bc9bed39e34f1585a17ae937d9be2d2597dd315" }, "downloads": -1, "filename": "kaircs-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4850da7a4dd0f0b793020e7de743ec5a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15676, "upload_time": "2017-12-07T19:31:36", "url": "https://files.pythonhosted.org/packages/3d/ab/5b70a77ffe05e6267fa669851e71be730cb4e5d50f4d611cd7dc833bd7e2/kaircs-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34e54b4dd5cb477216d7c92fd3206382", "sha256": "36c83d880b34bf530f42ec9758b8f15114c661618cebff1b924622b4a9bcd97e" }, "downloads": -1, "filename": "kaircs-0.2.0.tar.gz", "has_sig": false, "md5_digest": "34e54b4dd5cb477216d7c92fd3206382", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13325, "upload_time": "2017-12-07T19:31:40", "url": "https://files.pythonhosted.org/packages/65/01/f5ff29b5121d856c630f43eb1452e56b598f22ea31516ca898c40172a486/kaircs-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6760581526f895a58e37d7a2cd552fd1", "sha256": "7045015f0b54f106512570f2fdec80ea2bff581197733b53c7bc279165205c50" }, "downloads": -1, "filename": "kaircs-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6760581526f895a58e37d7a2cd552fd1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16206, "upload_time": "2017-12-08T22:13:23", "url": "https://files.pythonhosted.org/packages/cb/fc/1a8372d95401c677d00f6e4ec1e978e6c5c9fc3aa38dcedc55322f221c85/kaircs-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "067e07a62bb0490bf912b7ef664636d5", "sha256": "1a557f702684ec3e547d4e1423ea6ba247c53efb68ed9600e7302bf599c7d03a" }, "downloads": -1, "filename": "kaircs-0.3.0.tar.gz", "has_sig": false, "md5_digest": "067e07a62bb0490bf912b7ef664636d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12978, "upload_time": "2017-12-08T22:13:25", "url": "https://files.pythonhosted.org/packages/06/99/f4c4963e3475cc5569387ca9ff0291f8c6cb0a5cc475748233780105889c/kaircs-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d54f2229e24b18c3c713c61157c39f41", "sha256": "ee6fff2abe7ea1d66a7f2be39b9b45cbff4e0f15b3ab05f3bf26d1d7717f1bd6" }, "downloads": -1, "filename": "kaircs-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d54f2229e24b18c3c713c61157c39f41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 164048, "upload_time": "2018-10-05T22:41:17", "url": "https://files.pythonhosted.org/packages/6c/5c/1d7f90e81c0d3acbb8c199a8906a758f04deeaaf317fe0c6d2f665cfcbd5/kaircs-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c897c0807ffaed1e0c187f2725665f1e", "sha256": "cfae6ef5717552ed4a2e7e92a92e1416dd305482044f90608c2f1109118f95d5" }, "downloads": -1, "filename": "kaircs-0.4.0.tar.gz", "has_sig": false, "md5_digest": "c897c0807ffaed1e0c187f2725665f1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 119590, "upload_time": "2018-10-05T22:41:29", "url": "https://files.pythonhosted.org/packages/ca/5a/01c3831a7edfffdd06057a479e6d436c7f71ecfe83824910d86268d82365/kaircs-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d54f2229e24b18c3c713c61157c39f41", "sha256": "ee6fff2abe7ea1d66a7f2be39b9b45cbff4e0f15b3ab05f3bf26d1d7717f1bd6" }, "downloads": -1, "filename": "kaircs-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d54f2229e24b18c3c713c61157c39f41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 164048, "upload_time": "2018-10-05T22:41:17", "url": "https://files.pythonhosted.org/packages/6c/5c/1d7f90e81c0d3acbb8c199a8906a758f04deeaaf317fe0c6d2f665cfcbd5/kaircs-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c897c0807ffaed1e0c187f2725665f1e", "sha256": "cfae6ef5717552ed4a2e7e92a92e1416dd305482044f90608c2f1109118f95d5" }, "downloads": -1, "filename": "kaircs-0.4.0.tar.gz", "has_sig": false, "md5_digest": "c897c0807ffaed1e0c187f2725665f1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 119590, "upload_time": "2018-10-05T22:41:29", "url": "https://files.pythonhosted.org/packages/ca/5a/01c3831a7edfffdd06057a479e6d436c7f71ecfe83824910d86268d82365/kaircs-0.4.0.tar.gz" } ] }