Skip to content
/ midio Public

maintained BSD fork of min.io (the high-performance S3-compatible object store) - WIP

License

Notifications You must be signed in to change notification settings

siriushq/midio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

siriushq/midio
==============

There are many available sources of documentation for users and contributors.
Non-rendered source documentation is available in the "documentation" directory.
https://midio.sirius.cam houses the rendered documentation.

It is mandatory to read [license] & [/attribution/*] before using this software.

<!> The rendered documentation is currently not public.
<!> A release has not yet been published, you must manually build.

building
========

The preferred environment uses Git and Go 1.19.
Go distribution is provided by go-wrapper <git@github.com:furkilic/go-wrapper>.

Ensure that GOROOT is unset, or your local Go installation may take precedence.
Always test the [gow version] command to ensure this is not the case.

Ensure the [.git] directory is preserved (clone the repository correctly),
or building will fail.

	building binary ====================================================
	$ git clone --recursive git@github.com:siriushq/midio.git
	$ cd midio
	$ gow generate
	$ gow build -ldflags="-s -w"

	This produces a runnable binary, for the system you are building on.
	For usage instructions, execute the binary.
	====================================================================

	building licenses ================================================
	$ gow install github.com/google/go-licenses/v2@v2.0.0
	$ go-licenses report github.com/siriushq/midio \
		--template ./attribution/license-dependencies.tpl \
		> ./attribution/license-dependencies.md

	Swap line continuations ('\') for the shell you are building with.
	==================================================================

	building as shared library ========================================
	$ gow generate
	$ gow build -ldflags="-s -w" --buildmode=c-shared -o midio.SO

	Swap 'SO' (for Unix) with 'DLL' (for Windows) or 'DYLIB' (for Mac).
	This produces a binary and C header file, for the desired system.
	Below is a usage example:

		#include "midio.h"

		midio_builder builder = midio_create();
		midio_volume(builder, "./example/");

		midio server = midio_server(builder);
		while (1) {
			char* message = midio_message();
			printf("%s", message);
			free(message);
		}
	===================================================================

	building documentation =======================================
	The documentation is automatically built on the master branch.
	For a local preview server, install Bun and run the following:

	$ cd /docs/
	$ bunx mint dev
	==============================================================

	running test suite ===================================================
	This can take a long time to run.
	Your firewall may block any opened ports when running it.

	This is required to be ran, and both binary & shared library builds
	tested manually, before any patches are submitted (when contributing).

	$ gow test ./...
	======================================================================

contributing
============

Contributions are accepted as long as they fall within implied project scope.

All commits must contain at least `Signed-off-by` to identify the author of the
contribution, and may contain `Co-authored-by` to attach any number of other
authors (this can be added automatically with `git commit ... -s ...`).

(furthermore, commits from people with repository write access are to be signed
with a verified GPG, SSH or S/MIME signature attached to your GitHub account).

Relevant documentation should be updated to include accrediting.

By submitting a contribution, you certify that you and other authors are making
your contribution available under the license of the project, and that you have
the rights to submit it.

licensing
=========

This project is licensed under the 3-Clause BSD.
This is being done at our loss. Consider starring this repository and/or buying
our products to support the development and future of this project.

Some portions of this project are adapted from projects with other licenses.
They are clearly marked with `SPDX-License-Identifier` & declared in the
"/attribution/*" directory.

support
=======

If commercial support is required, it can be granted for users/organizations by
request. Responses will be provided within 24 hours.

This can be obtained by emailing `midio@mechite.com` with the following
(* for required; please fill all fields using "N/A" for empty optionals):

	example.eml ==============================
	To: <midio@mechite.com>
	Subject: siriushq/midio commercial support
	Content-Type: text/plain; charset="UTF-8"

	Name *
	Organization
	Role

	Minimum duration commitment required
	Earliest required start date
	==========================================

About

maintained BSD fork of min.io (the high-performance S3-compatible object store) - WIP

Resources

License

Stars

Watchers

Forks

Contributors 284