Coder Social home page Coder Social logo

syncit's Introduction

Syncit: an easy way to share and save projects

Syncit is a folder sharing system i built myself, written completely in rust. It is organized in drawers (simple virtualized folders). It's made for beginners and people who don't need something as complicated as github to work for a project with someone else, or maybe for people who want an easy way to share projects between computers.

CLI base commands:

syncit send <path>

Creates or uploads the folder contents to a drawer named as the last subfolder in the given path (or the current folder name if no path is given).
E.g.: syncit send ~/desktop/closet will load the content in the folder at ~/desktop/closet in a drawer named closet.

syncit get <path>

Gets the content of a drawer and puts it in the path given location. The drawer name will be the last subfolder name in the given path (or the current folder name if no path is given).
E.g.: syncit get executed in ~/shelf/ will get the contents from shelf drawer and put it in current folder.

Config file

This system has his own all-in-one config file: .sync. The current version supports files to ignore (@ignores [<files>]), debug mode for extended output in console (@debug), and location path (@location <path>, currently unused). For example, with this config file:

@ignores
box
jar
.trash

@debug

@location bob:closet

the send command won't add the box and pot folders in the drawer, together with the .trash file. The CLI will also enable extended debug outputs and set the drawer location to bob:closet (explained in todos). The default config file will contain ignores for .git folder and .gitignore file.

TODOs (in order of importance):

  • Account and permissions system, to share and crypt files, and to give permissions to friends to edit your drawer (probably with perm command).
  • A way command to select drawer name and owner user and set it to the config file, if I don't want to use the current folder as drawer name. (E.g. if I have the permissions to edit it, syncit way bob:closet will set the project location to bob's drawer named closet)
  • An edit history system with backups, important for shared projects.
  • A GUI (maybe in tauri) for a better managment of permissions, drawers, and for file listing without downloading drawers.
  • An optional commit system: Every user sharing a drawer will have his own drawer version, and the send command will update my own version of the drawer. Only on commit the changes will be made visible to the shared version.
  • A branch system, maybe with syncit branch <name> accessible with syncit switch <name>.

syncit's People

Contributors

rk-7474 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.