typelevel / typelevel/jawn

Facade for serialization of supported ASTs?

Open
#6 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
436
Forks
72
Avg merge
1h 44m
Merged PRs (30d)
1

Description

Escalating Twitter discussion discussion beyond 140 characters:

I created jawn-streamz for parsing scalaz-streams of ByteVectors to any Jawn-supported JSON AST. I think it could make a good Jawn module, but I also have the use case of serializing JSON back to ByteVectors. It would be splendid if this could also be done through a facade, and keep streamz support shielded from the Great JSON Framework Holy War.

Open questions:

  1. Would serialization be in scope for Jawn, or is that bloat?
  2. If in scope, what types are targeted for serialization? Parser supports String, File, Channel, ByteBuffer, and scalaz.stream.Process. Symmetry is neat.
  3. What additions to the facade would be necessary to support those targets?
  4. Should a serialization facade offer options for pretty-printing, compact, etc.?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing parser facade and the jawn-streamz module, then compare the proposed serialization targets with the current parser targets. Resolve whether serialization belongs in Jawn, which output types and formatting options it should support, and what facade additions would be required; done means the scope and API direction are agreed.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.