Categorygithub.com/quic-s/quics-client
module
0.1.0
Repository: https://github.com/quic-s/quics-client.git
Documentation: pkg.go.dev

# README

quics-client

quics-client is a client for the QUIC-S. It is continuous file synchornization tool based on the QUIC protocol.

NOTICE If you want to use this tool, you should use the server of QUIC-S. You can find the server in here

Features | Getting Started | How to use | Documentation | Contribute

Features

1. App Controller

Start, Reboot, Stop management of the app. And also, user can check the status of the app. All the management is done by the command line made by cobra library.

2. App Config

By using viper library, environment variables is managed. Mostly it is used for the configuration of the Root Directory Path for sync. And also, it is used for the configuration of the server IP address and port number.

3. Connection Manager

  • Server Connection : User can connect with access token and IP address, then dial to server to send first message with user information.
  • Root Directory Connection : User can select the directory that user want to manage. Choose Local Root Directory or Remote Root Directory that any folder user wants. And then, user can start to sync.

4. File Manager

By using fsnotify library and goroutine, user can monitor the file changes in the directory. And then, user can send the file changes to the server.

5. File Sync

For make sync in real time, the Sync Metadata is saved in the local db, the BadgerDB. This is for the comparison of the file changes. And also, user can check the file changes in the local db.

6. Extension

HTTP/3 is used for the each cobra command, except the controller command. And also, the API is used for the communication between the client and server. By using the HTTP/3 API, developers can easily integrate the GUI or other functions.

For more detail logic and implementation, please check QUIC-S Docs

Getting Started

1. Docker

docker run -it -d  -v /path/to/your/dir:/dirs --name quics-client -p 6120:6120 -p 6121:6121/udp  quics/quics-client

2. Local Install

    1. Download the latest release from the releases page
    1. Unpack the archive.
    1. Run mv ./qic /usr/local/bin/qic

3. Build from source

    1. Install Go 1.21 or later.
    1. Clone this repository.
    https://github.com/quic-s/quics-client.git
    
    1. Run the command in the root of the repository.
    go build -o qic ./cmd
    

How to use

Check the video for how to use

quics-video

TagCommandOptionsDescriptionHTTP MethodEndpoint
controllerqic start--hportstart the programX
controllerqic--helpshow the help messageX
configqic config showread .qis.envGET/api/v1/config/show
configqic config server--host --portmain server configPOST/api/v1/config/server
connectqic connect server--host --port --passwordconnect to the serverPOST/api/v1/connect/server
connectqic connect root--local --passwordconnect to the local root directoryPOST/api/v1/connect/root/local
connectqic connect root--remote --passwordconnect to the remote root directoryPOST/api/v1/connect/root/remote
connectqic connect list-remoteget the list of remote root directoryGET/api/v1/connect/list/remote
disconnectqic disconnect root--pathdisconnect to the root directoryPOST/api/v1/disconnect/root
syncqic sync status--pathget the status of the root directoryPOST/api/v1/sync/status
syncqic sync rescanrescan the all of root directoryPOST/api/v1/sync/rescan
conflictqic conflict listget the list of the root directoryGET/api/v1/conflict/list
conflictqic conflict choose--path --candidatechoose the file of the root directoryPOST/api/v1/conflict/choose
conflictqic conflict download--pathdownload the file of the root directoryPOST/api/v1/conflict/download
sharingqic share file--path --cntshare the file of the root directoryPOST/api/v1/share/download
sharingqic share stop--linkstop the sharing of the filePOST/api/v1/share/stop
historyqic history rollback--path --versionrollback the file to certain versionPOST/api/v1/history/rollback
historyqic history show--path --from-headshow the history of the filePOST/api/v1/history/show
historyqic history download--path --versiondownload the file of the root directoryPOST/api/v1/history/download

Documentation

For more detail logic and implementation, please check QUIC-S Docs Also you can check quics for server side and quics-protocol for protocol.

Contribute

QUIC-S is an open source project, and contributions of any kind are welcome and appreciated.

We also have a awesome plan to make QUIC-S better. Check ROADMAP.md will be helpful to understand our project's direction.

To contribute, please read CONTRIBUTING.md

  • To report bugs or request features, please use the issue tracker. Before you do so, make sure you are running the latest version, and please do a quick search to see if the issue has already been reported.

  • For more discussion, please join the quics discord

# Packages

No description provided by the author
No description provided by the author