File archival and meta data synchronization tool (experimental)
This project is intended mostly to show off a complete Go project that I wrote myself (my other Go projects are closed source, unfortunately) as part of my larger profile. It should demonstrate a systems program that interacts with the file system, uses a database, and performs network traffic. It is also useful to me, since I'm using it to extract and backup all the images my family has to a cloud service.
I also wanted to have some record of what a good Go project looks like. It is routine for me to setup a quality Python library and deploy it on PyPi - but it's less clear about how to do that for Go. After researching other Go project libraries, this is what I came up with:
Together I hope this demonstrates to you and future me how to best set up a Go project, especially as I may be moving away from Go programming back to other languages at least in the immediate future.
Crate is open source, and I would be happy to have you contribute! You can do so in the following ways:
You can connect with me on Twitter for other discussions: @bbengfort
crate
krāt
noun
a slatted wooden case used for transporting or storing goods.
"a crate of bananas"
an old and dilapidated vehicle.
verb
Ok, so I'm a bit of a nerd - but I was thinking about other projects like Box, Dropbox, S3, etc. Crate seemed like an appropriate name. Unfortunately there is already a crate.io which similarly is an elastic data store. My thing is more about storage and transportation, but hey - it's close!
Crate does a lot of work on Images, and so it's only fair to specify the attribution of those images. For the test images in the fixtures directory, see the README.md there. The header image in this README is attributed as follows:
Astro Crate by Steve is licensed under CC-BY-NC