Skip to content

GopherDB is a flexible, distributed database platform that supports multiple concurrent workspaces, each uniquely identified. Tailor each workspace with options for Cache, Persistent, or hybrid configurations.

License

Notifications You must be signed in to change notification settings

bwlee13/gopherdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License

Reach out to me directly

X Follow

GopherDB

Welcome to GopherDB! GopherDB is a flexible, distributed database platform that supports multiple concurrent workspaces, each uniquely identified. Tailor each workspace with options for Cache, Persistent, or hybrid configurations.

Cache

Customize your cache with a number of eviction algorithms. GopherDB currently supports LRU (Least Recently Used).

Coming Soon - LFU (Least Frequently Used), MRU (Most Recently Used), ARC (Adaptive Replacement Cache), TLRU (Time-aware Least Recently Used)

Disk

Persistent storage will include SQL, NoSQL, TimeSeries, and Vector databases, making it a comprehensive solution for managing diverse data needs in one unified platform.

(back to top)

Getting Started

Welcome to the GopherDB project repository! This document provides essential information for developers working on or contributing to the GopherDB application.

Makefile

The make file currently only supports MacOS / Unix systems. This is used to build and install the gopherdb CLI globally on your system.

(back to top)

Entry Points

The following is informational. See Running Commands for actual test runs.

Server

The entry point for the GopherDB server is located in the server.go file within the server directory. This file initializes the server with necessary configurations and starts listening for incoming requests.

/server/server.go

CLI

The entry point for the GopherDB CLI is located in the root.go file within the cli/cmd directory. This file is the root commands and configurations and is where all incoming requests will pass.

/cli/cmd/root.go

New CLI commands should be their own go files under cli/cmd and the command var should be added to root.go's init() func.

root.go:

func init() {
    rootCmd.AddCommand(
        versionCmd,
        timezoneCmd,
        startCmd,
        // New Command Here
    )
    ...
}

(back to top)

Running Commands

Try running the gopherdb cli to start the server.

From root, open your terminal and run the following:

cmd cli && go run main.go help

Roadmap

Loosely in order

  • Add back to top links
  • Add Changelog
  • Add cache eviction policies
    • LFU
    • MRU
    • ARC
    • TLRU
  • Build SDK
  • Add NO-SQL DB
  • Add SQL DB
  • Add Timeseries SQL DB
  • Add Vector DB

(back to top)

Contributing

I am constantly looking for feature ideas or feedback. If you want to share your thoughts but don't want to build it yourself and raise a PR, simply reach out to me directly on twitter / X.

Brandon Lee

X Follow

Contributions are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -am 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

About

GopherDB is a flexible, distributed database platform that supports multiple concurrent workspaces, each uniquely identified. Tailor each workspace with options for Cache, Persistent, or hybrid configurations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages