restcol

command module
v0.0.0-...-6115fea Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2025 License: Apache-2.0 Imports: 6 Imported by: 0

README

Restcol

One Single RESTful API for Collaborating, Sharing, and Streaming Data

License GitHub Issues GitHub Stars

Overview

Restcol is a RESTful document storage solution designed for collaboration, built to work with any kind of storage backend. It organizes data into collections and documents, providing a flexible and scalable way to manage and share data. Collections group documents with similar schemas, enabling schema evolution tracking over time, while documents store client data in formats like JSON, CSV, XML, or even media files. No predefined schema is required—schemas are dynamically created or updated with each document request.

This project aims to simplify data collaboration and streaming by offering a unified API that adapts to your application's needs.

Features

  • Flexible Storage: Works with any storage backend.
  • Collections: Organizes documents with similar schemas for easy management and schema change detection.
  • Dynamic Schemas: Automatically creates or modifies schemas based on document requests—no upfront schema definition needed.
  • Supported Formats: Handles JSON, CSV, XML, and media data.
  • RESTful API: Simple, intuitive endpoints for collaboration and data streaming.

Installation

  1. Clone the repository:

    git clone https://github.com/FootprintAI/restcol.git
    cd restcol
    
  2. Install dependencies (assuming a Go-based project; adjust if different):

    go mod tidy
    
  3. Build and run:

    go build
    ./restcol
    

Note: Specific setup instructions may vary depending on your environment and storage backend. Check the source code or configuration files for additional requirements.

Usage

Basic Example

To create a collection and add a document via the API:

# Create a new collection
curl -X POST http://localhost:8080/collections -d '{"name": "my-collection"}'

# Add a document to the collection
curl -X POST http://localhost:8080/collections/my-collection/documents -d '{"data": {"id": 1, "name": "example"}}'

For detailed API documentation, refer to the API Reference section (to be added).

Configuration

  • Storage Backend: Configure your preferred storage system (e.g., local filesystem, S3, etc.) in the config file or environment variables.
  • Port: Default is 8080. Override with the PORT environment variable.

Example configuration:

export STORAGE_TYPE="filesystem"
export STORAGE_PATH="/path/to/storage"
export PORT=8080

Contributing

We welcome contributions! To get started:

  1. Fork the repository.
  2. Create a feature branch: git checkout -b my-feature.
  3. Commit your changes: git commit -m "Add my feature".
  4. Push to your fork: git push origin my-feature.
  5. Open a pull request.

Please read our Contributing Guidelines for more details (to be created if not present).

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

Roadmap

  • Add support for additional storage backends.
  • Implement real-time streaming capabilities.
  • Enhance schema versioning and migration tools.

Contact

For questions or support, open an issue on the GitHub Issues page or reach out to the FootprintAI team.


Maintained by FootprintAI
Last updated: March 02, 2025

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
pb
Package pb is a reverse proxy.
Package pb is a reverse proxy.
pkg
app
runtime/swagdef
package swagdef provides methods to operate json data and swag definition
package swagdef provides methods to operate json data and swag definition

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL