Skip to main content

Storlets

Storlets extend Swift with the ability to run user defined computations - called storlets - near the data in a secure and isolated manner. A storlet is a compiled and packaged code (e.g. a .jar file) that can be uploaded to Swift as any other object. Once uploaded the storlet can be invoked over data objects in Swift. The Storlets API is documented at “Storlets API v1”.

The project started off as an IBM research project, and was open sourced by IBM in 2014.

  • The research leading to the development of this code received funding from the European Community’s Seventh Framework Programme (FP7/2007-2013) under the grant agreements for the CASPAR, ENSURE and VISION Cloud projects.

  • Various stages and different aspects of the development of this code received funding from the following European Community’s Framework Programme:

    • Seventh Framework Programme (FP7/2007-2013) under the grant agreements for the ForgetIT project, where the code is used for offloading digital preservation functionalities to the storage.

    • Seventh Framework Programme (FP7/2007-2013) under the grant agreements for COSMOS project, where the code is used for analysis of IoT data.

    • Seventh Framework Programme (FP7/2007-2013) under the grant agreements for FI-CORE project where the code is integrated with a holistic cloud deployment solution, and from

    • Horizon 2020 (H2020/2014-2020) under the grant agreement for the IOStack project where the code is used as a backend implementing Storage policies and is used for analytics

Docs

The storlerts documentation is auto-generated after every commit and available online at https://docs.openstack.org/storlets/latest/

Getting Started for Users

The fastest way to get started is “S2AIO - Swift Storlets All In One”.

For Engine Developers

Getting Started

The best way to get started is following this guide: “Installing a Development Environment”.

Tests

There are two types of tests included in the Storlets repo.

  1. Unit tests

  2. Functional tests

Unit tests, are, well, unit tests… The functional tests are black box tests validating end-to-end scenarios using various storlets, including faulty ones. For more information please refer to the: “Development and Testing Guide”.

Repository Structure

  • doc/source/: Documentation

  • etc/: Sample config files

  • storlets/: Python codes

    • agent/: Python code for Docker side agents

      • common/: An agent for storlets process management

      • daemon/: An agent for execution of python applications

      • daemon_factory/: Pyth

    • gateway/: Run time loadable code for managing storlets execution

    • sbus/: A Java implementation of the SBUS communication protocol

    • swift_middleware/: Swift middleware dealing with storlet invocation requests

  • StorletSamples/: Storlets examples, used for functional testing

  • src/: C and Java codes

    • c/: All codes

      • sbus/: A core implementation of the SBUS protocol, which is used for passing fsd between the middleware and container

    • java/: Java codes

      • SBus:/ A Java implementation of the SBUS communication protocol

      • SCommon/: A Java library required for storlets development

      • SDaemon/: A generic Java daemon for loading storlets at runtime

  • tests/: Unit and functional tests

  • tools/: Various cluster config dependent tools for automatic and manual testing

For Storlets Developers

Currently, storlets can be developed in Java only. To get started, follow: “S2AIO - Swift Storlets All In One”.

The write and deploy a storlet, follow: “Writing and deploying storlets”.

Metadata

Release files for storlets 18.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for storlets 18.0.0
File Size Uploaded
storlets-18.0.0.tar.gz 1.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for storlets 18.0.0
File Interpreter ABI Platform
storlets-18.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.9 MB

Release files / storlets-18.0.0.tar.gz

Download URL storlets-18.0.0.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
0a7a514df1b139853e2502c7def9320224d46006ba2b37614bc487fb5ffb6c47
BLAKE2b-256 checksum
How to use checksums
440ed6aa90e6408eff901f3d246c62387b320a5c84fa2b07a39c6869031f1e79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / storlets-18.0.0-py3-none-any.whl

Download URL storlets-18.0.0-py3-none-any.whl
Size 80.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff030e9c0a89ad9615dc3f097b9b5394175811326b3da2980c9955d596020400
BLAKE2b-256 checksum
How to use checksums
5854e8ab4d5f185b0c71adf37fdb3f15980f5b7abbce8d2d01a76081c293546f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

18.0.0 This release

2 release files

11.0.0

2 release files

9.0.0

2 release files

8.0.0

2 release files

7.0.0

2 release files

6.0.0

2 release files

5.0.0

2 release files

4.0.0

2 release files

3.0.0

2 release files

2.0.0

2 release files

1.0.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page