Reach out to me directly
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.
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)
Persistent storage will include SQL, NoSQL, TimeSeries, and Vector databases, making it a comprehensive solution for managing diverse data needs in one unified platform.
Welcome to the GopherDB project repository! This document provides essential information for developers working on or contributing to the GopherDB application.
The make file currently only supports MacOS / Unix systems. This is used to build and install the gopherdb CLI globally on your system.
The following is informational. See Running Commands for actual test runs.
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
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
)
...
}
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
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
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
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -am 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request