DEV Community

Ben McClelland
Ben McClelland

Posted on

VersityGW Plugins: How To Enable S3 Access For Any Storage System

VersityGW (Versity Gateway) is an open‑source, high‑performance S3 translation server written in Go that acts as a bridge between any storage system and S3‑compatible clients. https://github.com/versity/versitygw

There is built in support for hosting filesystems, Azure blob, and other S3 systems as a private S3 service.

Recently introduced was a new plugin backend system. This allows implementing new storage system backends for VersityGW outside of the main repo and loading this capability at runtime. The flexible Apache 2.0 licensing for VersityGW allows organizations to implement plugins without any license restrictions. The benefit of implementing a plugin is that you can focus on the interactions with your storage system leaving all the S3 protocol handling to VersityGW.

Unlock S3 Access to CERN EOS with VersityGW + EOS S3 Plugin

The recent work from CERN — gmgigi96/eoss3 — serves as a compelling example of the power of Versity’s plugin‑based S3 Gateway architecture. By implementing a backend plugin, developers gain full S3 API support on top of EOS without having to implement the S3 protocol stack from scratch.

Why plugin architecture matters

VersityGW radically simplifies S3 via modularity. The S3 protocol logic lives entirely inside VersityGW: handlers, authentication, routing, error responses, multipart handling, logging, notifications, metrics — all part of the core. The backend plugin developer focus is narrow: You only implement the storage operations for your native storage system - for example putObject(), getObject(),etc. The plugin needn’t setup complex http routing, parse headers, or manage AWS signature auth, VersityGW already does that. Backend plugin developers can choose to implement just the subset of operations that they need for their use case.

Why re‑do S3? You don’t have to. When adding S3 support, you can ignore the protocol nitty‑gritty. No need to sacrifice on scale or performance. VersityGW offers best‑in‑class performance leveraging the fastest web server frameworks, stateless design to enable horizontal scaling via load balancing, all written in Go to enable efficient handling of many simultaneous requests.

Getting started

Clone the repo at https://github.com/versity/versitygw.

Documentation is in the wiki.

Including documentation on writing a plugin.

Concluding thoughts

VersityGW’s plugin‑based S3 gateway is a game-changer: abstracting away the S3 protocol so storage engineers can focus on integrating their system backend. CERN’s eoss3 plugin validates the architecture: a fast S3 protocol translator to turn specialized storage systems into fully‑specced S3 object stores, scalable, performant, and compatible.

If you're working on object/cloud integration for novel storage platforms, start with VersityGW and build your backend plugin. The project is open to community collaborators with several contributions for new features from new contributors already.

Top comments (0)