Skip to content

flowchartsman/pfunc

Repository files navigation

logo

last commit GitHub release (latest by date) downloads

! PFUNC IS ALPHA !

PFunc is a Pulsar Function SDK for Go.

Pulsar is a distributed pub-sub messaging platform with a very flexible messaging model and an intuitive client API.

PFunc was created to add some features and to experiment with a more ergonomic API, while also serving as a proof-of-concept for the official SDK. The goal is not to compete with the official SDK, but to help improve it and potentially eventually serve as a replacement.

Status

PFunc is in early pre-release and is not considered production-ready. The API is still in active development, and will likely have at several breaking changes before beta, and may include some before v1.0.0. If you want to experiment with it, version pinning is highly recommended pre 1.0.0.

Please check the milestones for more info on progress to release.

Planned Features

  • Streamlined Messaging API
    • Return one or more messages for multiple topics
    • Support for message properties
    • Support for message key (with automatic defaults)
  • Improved access to context, and user config
  • Support for slog as a logging interface
  • Better crash reporting (initialize logging as soon as possible and report panics when possible)
  • Java SDK Parity
  • New Features
    • Support for go 1.19 soft memory limit
    • Expanded Standard Metrics (messages output, output percentage)
    • Extended User Metrics (more than just an overloaded histogram)
    • Continuous Profiling Reporting (w/ optional reporting on a topic)

Versioning

TBD, but will follow semver conventions first, pulsar major versioning second, if possible.

Usage

TODO

License

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0