EBZip
Electronic Book Zip or EBZip is a compression format used in electronic dictionaries that were distributed primarily on compact discs (CD). It is also one of the many frontend utilities that uses the EB library for manipulating EPWING format.
The electronic dictionaries stored on computers eliminates the need to have physical media, and allows remote referencing if it was connected to a network, using the likes of dserver
or ebnetd
for instance. It is likely that compression was needed due to the fact that hard disks were expensive compared to compact discs, when having a number of electronic dictionaries stored on a computer, it made little sense to retain physical media just to reference a number of words every so often, and to juggle around ejecting/inserting discs into the computer. For the expense of sacrificing few CPU cycles and potentially insignificant amount of memory, these electronic dictionaries could be made to take less storage space[2], and allows faster dictionary lookups due to hard disks allowing random access.
The compression is lossless, initially using a modified zlib[3], then likely unmodified zlib by the original ebzip
author[4]. Do keep in mind that not everything is compressed, EBZ format is not a container like ZIP for instance, selected files (typically CATALOGS
and HONMON
) are compressed and have their filenames bearing these extensions, e.g. HONMON.ebz
.
Contents |
History
EB-like software for Unix-like began circulating on Japanese Usenet as early as September 1991 in the form of shar by Shingo Nishioka of Osaka University.[5][6] Versions before 2.1beta of dserver
lacked compression, which was introduced as early as 1996-03-25 by Yura Shunsuke.[7] Gradually over time, Motoyuki Kasahara, a member of Software Research Associates (SRA) and the author of EB Library, began developing ndtpd
which handles electronic dictionary or dictionaries over the network, replacing dserver
.[8][9][10] The first release of such software was around 1997-06-04 as ndtpd-1.0beta0
(via FTP) with which it included eb
which was a library. Earliest release on fj.sources was 1997-08-07 as ndtpd-1.0
, which also describes the relationship between dserver
and ndtpd
, as shar.[11][12][13][14][15][16][17][18][19][20] Until the release of ndtpd-3.0alpha0
(2000-06-04), eb
has always been included. EB Library began as a separate project with the first release in 1999-06-16 as eb-2.2
. Both of these projects continued until the discontinuation of ndtpd
(as a release) on 2003-05-24 with the version 3.1.5. eb
remained to be maintained until 2010-03-08 with the version 4.4.3.
EBUZip
EBUZip is a fork of EBZip that is maintained by Ito Kazuhiro. The 'U' in EBUZip denotes the ability to support JIS X 4081 UTF-8 extensions provided that it is compiled and configured correctly. It also brings in new features that differs from EBZip such as,
- The ability to use libdeflate algorithm at compile time, which, "is a library for fast, whole-buffer DEFLATE-based compression and decompression."[21], which was added on 2019-06-30.[22]. Additionally, the new maintainer provided benchmark results against uncompressed, zlib and libdeflate.[23]
- libdeflate can also decompress EPWING e-books compressed with zlib, as well as recompressing them with potentially higher compression ratio. This could subsequently make it a viable candidate instead of needing to alternate between EBZip and EBUZip, see the Talk:EBZip section on this which is covered in detail.
- Fixes to work on a newer codebase, as opposed to maintaining a series of patches on top of libeb.[24]
Mr. Kazuhiro have also previously contributed to Mr. Kasahara's EBZip project, on 2000-06-24.[25].
Identification
A EBZ
file begins with bytes 45 42 5a 69 70 15 00 00 00 00
, in ASCII this would be "EBZip...."
.
Examples
These must be executed in the top level of (book) directory that contains CATALOGS
file, otherwise it will default to your current directory $(pwd)
. See EPWING#Content structure for the directory structure of book layout.
If you are using EBUZip, the name of the compiled binary is ebuzip
, as opposed to ebzip
.
Show information about the file:
ebzip --information
Decompress files:
ebzip --uncompress wikipedia-fpw
Compress files:
ebzip wikipedia-fpw
Test files:
ebzip --test wikipedia-fpw
Show help:
ebzip --help
Sample file
Filename | Main server download link | Mirror server download link | Notes |
kanjidic_en.fpwebz.tar | EDRDG.org | USF.edu | Use 7-Zip to open on Windows machines for instance, otherwise Tar should suffice. |
Software (mostly Japanese only)
See also: Wikipedia:ja:EPWING#検索ソフトウェア
- Windows
- Linux
Links (mostly Japanese only)
- Wikipedia:ja:電子ブック (規格)
- Internet Archive's mirror of EB Library that was hosted on SRA's website
- EBU
References (mostly Japanese only)
- ↑ ChangeLog - SRA website mirrored on Internet Archive
- ↑ Kenkyusha dictionary CD and EPWING - sci.lang.japan NARKIVE - Internet Archive copy
- ↑ Last version released with internal zlib - README.altered - version 4.1.3 - Misty De Méo
- ↑ Internal zlib removed - Commit 742ddab (4.2) - Misty De Méo
- ↑ dserver/Electronic Book Dictionary server & clients (1/2) - AncientFJ - katsu.watanabe.name
- ↑ dserver/Electronic Book Dictionary server & clients (2/2) - AncientFJ - katsu.watanabe.name
- ↑ dserver 2.1-beta patch for compressed dictionary - AncientFJ - katsu.watanabe.name
- ↑ BookView 1.0 - AncientFJ - katsu.watanabe.name
- ↑ BookView 1.0.2 (Re: BookView 1.0) - AncientFJ - katsu.watanabe.name
- ↑ BookView 1.1 (1/3) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (0/9) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (1/9) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (2/9) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (3/9) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (4/9) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (5/9) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (6/9) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (7/9) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (8/9) - AncientFJ - katsu.watanabe.name
- ↑ ndtpd 1.0 (9/9) - AncientFJ - katsu.watanabe.name
- ↑ README.md Overview section - libdeflate - GitHub
- ↑ EB Library with UTF-8 extension
- ↑ Compressing EPWING (using libdeflate)
- ↑ 010_debian.patch - eb-4.4.3-14 - sources.debian.org
- ↑ ChangeLog.1 (line 1371) - EB Library - Misty De Méo