Packages
compound_file
0.1.0
A library for reading and writing Microsoft Compound File Binary Format (CFBF) files, also known as Composite Document File v2 (CDF).
Current section
Files
Jump to
Current section
Files
compound_file
README.md
README.md
# CompoundFile
CompoundFile is an Elixir library for reading and writing Compound File Binary Format (CFBF) files, also known as
Compound Document format, Composite Document File V2, or OLE2.0 files.
## Installation
Add `compound_file` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:compound_file, "~> 0.1"}
]
end
```
Then, run `mix deps.get` to install the dependency.
## Usage
Constructing a CFBF file might look something like this:
```elixir
alias CompoundFile.Writer
Writer.new()
|> Writer.add_file("example.txt", "Hello, World!")
|> Writer.add_file("data/text/example2.txt", "Another file")
|> Writer.render()
|> case do
{:ok, binary} ->
File.write!("example.cfbf", binary)
{:error, reason} ->
IO.puts("Error writing CFBF file: #{reason}")
end
```
Reading a CFBF file can be performed like this:
```elixir
alias CompoundFile.Reader
binary = File.read!("example.cfbf")
{:ok, [file_entry | _]} = Reader.files(binary)
{:ok, content} = Reader.file_data(binary, file_entry)
IO.puts("First filename: #{file_entry.path}")
IO.puts("First file content: #{content}")
```
## Maturity
This library is in an early stage of development. File writing is relatively stable, but reading does not have
any error handling yet. Please contribute if you find bugs or have suggestions for improvements.
## Contributing
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
## License
MIT license, copyright 2025- Mog Nesbitt.