项目作者: lutfinasution
项目描述 :
Filebrowser + thumbnail viewer
高级语言: Go
项目地址: git://github.com/lutfinasution/filebrowser.git
Filebrowser + thumbnail viewer + http server
Expanded example based on lxn’s excellent walk win32 libraries https://github.com/lxn/walk filebrowser example, adding many new
features.

Why?
I’m trying to explore golang’s capabilities and performance in developing a multithreaded and memory intensive windows desktop app.
For inspiration and comparison, I used my old application, Antares12 which was built using Delphi2007.
So far golang didn’t disappoint!

Features:
- Image browser, displaying thumbnail of images in a grid.
- Image http server, serving thumbnail of images in a folder. Use http://localhost:8080/users/albums or http://localhost:8080/users/photos while the app is running.
- Very fast and efficient multi threaded thumbnail processing with goroutines and channels.
- Resizeable thumbnail size.
- Filesystem/directory monitoring for changes (new/delete/renamed/modified files)
Golang’s features explored here:
- Goroutine, channels and synchronizations.
- Maps, slices
- cgo interfacing with external c libs
- Database interface with sqlite3
- Image processing (drawings/transforms)
Additional fabulous golang libraries used here:
Status and observations:
- Go language constructs comfortably matched object pascal (delphi) constructs.
- Many low level routines can easily be converted to golang.
- Goroutines and channels are truly handy in handling concurrent tasks.
- Performance in performing cpu and memory intensive operations is excellent. Comparable and sometimes better than delphi.
- Memory comsumption is larger than delphi/32bit, but not by much. No optimization on my part yet.
- So far so good…