---
name: "bson_writer_t"
section: "3"
platform: "linux"
package: "libbson-doc"
version: "1.30.4-1+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/bson_writer_t"
---

# bson\_writer\_t(3)

Bulk BSON serialization Abstraction

## SYNOPSIS

```
#include <bson/bson.h>
typedef struct _bson_writer_t bson_writer_t;
bson_writer_t *
bson_writer_new (uint8_t **buf,
                 size_t *buflen,
                 size_t offset,
                 bson_realloc_func realloc_func,
                 void *realloc_func_ctx);
void
bson_writer_destroy (bson_writer_t *writer);
```

## DESCRIPTION

The *bson\_writer\_t* API provides an abstraction for serializing many BSON documents to a single memory region. The memory region may be dynamically allocated and re-allocated as more memory is demanded. This can be useful when building network packets from a high-level language. For example, you can serialize a Python Dictionary directly to a single buffer destined for a TCP packet.

## EXAMPLE

```
#include <bson/bson.h>
int
main (int argc, char *argv[])
{
   bson_writer_t *writer;
   uint8_t *buf = NULL;
   size_t buflen = 0;
   bson_t *doc;
   writer = bson_writer_new (&buf, &buflen, 0, bson_realloc_ctx, NULL);
   for (i = 0; i < 1000; i++) {
      bson_writer_begin (writer, &doc);
      BSON_APPEND_INT32 (&doc, "i", i);
      bson_writer_end (writer);
   }
   bson_writer_destroy (writer);
   bson_free (buf);
   return 0;
}
```

## AUTHOR

MongoDB, Inc

## COPYRIGHT

2009-present, MongoDB, Inc.
