All Projects → akhenakh → Gozim

akhenakh / Gozim

Licence: mit
A Go native implementation for ZIM files

Programming Languages

go
31211 projects - #10 most used programming language

Build Status

gozim

A Go native implementation for ZIM files. See http://akhenakh.github.io/gozim

ZIM files are used mainly as offline wikipedia copies.

See http://openzim.org/wiki/ZIM_file_format and http://openzim.org/wiki/ZIM_File_Example

Wikipedia/Wikinews/... ZIMs can be downloaded from there http://download.kiwix.org/zim/

ScreenShot ScreenShot

build and installation

On Ubuntu/Debian youn need those packages to compile gozim

apt-get install git liblzma-dev mercurial build-essential

For the indexer bleve to work properly it's recommended that you use leveldb as storage.

go get -u -v -tags all github.com/blevesearch/bleve/...

Gozim http server is using go.rice to embed html/css in the binary install the rice command

go get github.com/GeertJohan/go.rice
go get github.com/GeertJohan/go.rice/rice
go install github.com/GeertJohan/go.rice
go install github.com/GeertJohan/go.rice/rice

Get and build the gozim executables

go get github.com/akhenakh/gozim/...
cd $GOPATH/src/github.com/akhenakh/gozim
go build github.com/akhenakh/gozim/cmd/gozimhttpd
go build github.com/akhenakh/gozim/cmd/gozimindex

After build gozimhttpd command run to embed the files:

rice append --exec gozimhttpd

cross-compilation

For easy cross-compilation a !cgo build version uses a pure go library for lzma parsing. The pure go library is around ~2.5x slower in benchmarks so compile on your target OS if performance is important.

running

Optionally, build an index file: gozimindex -path=yourzimfile.zim -index=yourzimfile.idx

Start the gozim server: gozimhttpd -path=yourzimfile.zim [-index=yourzimfile.idx]

TODO

Mmap 1st 2GB on 32 bits Selective Gzip encode response based on content type func rather than if for getBytes

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].