go-concise-encoding VS concise-encoding

Compare go-concise-encoding vs concise-encoding and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
go-concise-encoding concise-encoding
8 22
30 255
- -
6.9 7.2
7 months ago 7 months ago
Go ANTLR
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

go-concise-encoding

Posts with mentions or reviews of go-concise-encoding. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-15.
  • Ask HN: How long does it take for you to release your open source project?
    7 projects | news.ycombinator.com | 15 Mar 2023
    I'm not sure, TBH... Maybe I'm just a glutton for punishment?

    I'm currently partway through refactoring all of the portable unit tests for Concise Encoding ( https://github.com/kstenerud/go-concise-encoding/tree/master... ) and it is a SLOG! I mean, so goddamn boring and tedious that I wanna stick an ice pick through my skull. There's easily another 200 hours of this terrible work ahead and I'll be right back to it the moment Dogma v1 is published in a few weeks (Dogma has been kind of a vacation from it in a lot of ways).

    Do I dread it? Yes. Am I still going to do it? Yes. Because at the end of the day I want to be able to stand back and say "I made that. I completed it - ALL of it. It's not perfect, but it's doing its job and people are using it."

  • Working in the software industry, circa 1989 – Jim Grey
    5 projects | news.ycombinator.com | 11 Jul 2022
    It's still in the prerelease stage, but v1 will be released later this year. I'm mostly getting hits from China since they tend to be a lot more worried about security. I expect the rest of the world to catch on to the gaping security holes of JSON and friends in the next few years as the more sophisticated actors start taking advantage of them. For example https://github.com/kstenerud/concise-encoding/blob/master/ce...

    There are still a few things to do:

    - Update enctool (https://github.com/kstenerud/enctool) to integrate https://cuelang.org so that there's at least a command line schema validator for CE.

    - Update the grammar file (https://github.com/kstenerud/concise-encoding/tree/master/an...) because it's a bit out of date.

    - Revamp the compliance tests to be themselves written in Concise Encoding (for example https://github.com/kstenerud/go-concise-encoding/blob/master... but I'll be simplifying the format some more). That way, we can run the same tests on all CE implementations instead of everyone coming up with their own. I'll move the test definitions to their own repo when they're done and then you can just submodule it.

    I'm thinking that they should look more like:

        c1
  • Ask HN: What are you working on this weekend?
    1 project | news.ycombinator.com | 19 Nov 2021
    I'll be working on the reference implementation [1] of Concise Encoding [2], which is a secure data format for the modern world. My aim is to replace insecure and clunky formats like JSON and XML and the various binary formats that do similar things less conveniently.

    In a nutshell:

    - Existing ad-hoc formats are too loosely defined to be secure, and that's becoming a huge problem as the bad guys become more sophisticated. CE is tightly specified and designed to mitigate exploitation of codecs.

    - CE is a twin text and binary format. Humans view and edit in text, and machines send it in binary, so you get the convenience of text and the efficiency of binary for free.

    - CE supports the fundamental types natively. Stringifying is buggy, causes incompatibilities, and opens security holes. And it's completely unnecessary with a properly designed data format.

    [1] https://github.com/kstenerud/go-concise-encoding

    [2] https://concise-encoding.org/

  • Ask HN: What are some tools / libraries you built yourself?
    264 projects | news.ycombinator.com | 16 May 2021
    I'm building a general-purpose data format for the modern age. The old ones are too bulky, too insecure, and too limiting.

    * Secure: As a tightly specified format, Concise Encoding doesn't suffer from the security problems that the more loosely defined formats do. Everything is done one way only, leaving less of an attack surface.

    * Efficient: As a twin binary/text format, Concise Encoding retains the text-based ease-of-use of the old text formats, but is stored and transmitted in the simpler and smaller binary form, making it more secure, easier on the energy bill, and easier on the planet.

    * Versatile: Supports all common types natively. 90% of users won't need any form of customization.

    * Future-proof: As a versioned format, Concise Encoding can respond to a changing world without degenerating into deprecations and awkward encodings or painting itself into a corner.

    * Plug and play: No extra compilation steps or special description formats or crazy boilerplate.

    https://concise-encoding.org

    Reference implementation (golang): https://github.com/kstenerud/go-concise-encoding

  • I'd like to review your README
    7 projects | news.ycombinator.com | 17 Apr 2021
    One thing golang did right is the go playground. When I put code in my README, I also include a playground link.

    Example: https://github.com/kstenerud/go-concise-encoding#library-usa...

  • Ask HN: Is there a place to build peoples’ open source ideas?
    1 project | news.ycombinator.com | 15 Apr 2021
    I could use some help if you're interested in implementing an ad-hoc data format codec in different languages.

    https://concise-encoding.org is nearing release, but building the reference implementation (https://github.com/kstenerud/go-concise-encoding) has taken so much of my spare time that I couldn't even think about other languages (especially since I'll need to focus on the schema format next, and the proto-RPC protocol after that).

  • Architecture.md
    11 projects | news.ycombinator.com | 6 Feb 2021
    I've started doing this in my larger projects e.g. https://github.com/kstenerud/go-concise-encoding/blob/master...

    An architecture document should be the code equivalent of a combined street map and tourist guide. Its purpose is to bring strangers up to a minimum level of familiarity with the code as quickly as possible. That includes where things are, why it was architected this way, things to look out for, and a few interesting points of weirdness perhaps.

  • Ask HN: Show me your Half Baked project
    154 projects | news.ycombinator.com | 9 Jan 2021
    Concise Encoding: https://concise-encoding.org

    The friendly data format for human and machine. Think JSON, but with 1:1 compatible twin binary and text formats and rich type support.

    * Edit text, transmit binary. Humans love text. Machines love binary. With Concise Encoding, conversion is 1:1 and seamless.

    * Rich type support. Boolean, integer, float, string, bytes, time, URI, UUID, list, map, markup, metadata, etc.

    * Plug and play. No schema needed. No special syntax files. No code generation. Just import and go.

    I'm in the process of finishing up the reference implementation (https://github.com/kstenerud/go-concise-encoding), after which I'll start on the schema specification. Once that's done, I have a low-level communication protocol that will use this format under the hood.

concise-encoding

Posts with mentions or reviews of concise-encoding. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-07.
  • Ask HN: What Underrated Open Source Project Deserves More Recognition?
    63 projects | news.ycombinator.com | 7 Mar 2024
  • It's Time for a Change: Datetime.utcnow() Is Now Deprecated
    5 projects | news.ycombinator.com | 19 Nov 2023
    "Local time" is time zone metadata. I've written a fair bit about timekeeping, because the context of what you're capturing becomes very important: https://github.com/kstenerud/concise-encoding/blob/master/ce...
  • RFC 3339 vs. ISO 8601
    4 projects | news.ycombinator.com | 31 Aug 2023
    This is basically why I ended up rolling my own text date format for Concise Encoding: https://github.com/kstenerud/concise-encoding/blob/master/ct...

    ISO 8601 and RFC 3339 are fine for dates in the past, but they're not great as a general time format.

  • Ask HN: Please critique my metalanguage: “Dogma”
    2 projects | news.ycombinator.com | 26 Feb 2023
    This looks similar to https://concise-encoding.org/

    Dogma was developed as a consequence of trying to describe Concise Binary Encoding. The CBE spec used to look like the preserves binary spec, full of hex values, tables and various ad-hoc illustrations: https://preserves.dev/preserves-binary.html

    Now the CBE formal description looks like this: https://github.com/kstenerud/concise-encoding/blob/master/cb...

    And the regular documentation looks like this: https://github.com/kstenerud/concise-encoding/blob/master/cb...

    Dogma also does text formats (Concise Encoding has a text and binary format, so I needed a metalanguage that could do both in order to make it less jarring for a reader):

    https://github.com/kstenerud/concise-encoding/blob/master/ct...

    https://github.com/kstenerud/concise-encoding/blob/master/ct...

  • Concise Encoding Design Document
    1 project | news.ycombinator.com | 7 Nov 2022
  • Keep ’Em Coming: Why Your First Ideas Aren’t Always the Best
    2 projects | news.ycombinator.com | 7 Nov 2022
    Hey thanks for taking the time to critique!

    I actually do have an ANTLR file that is about 90% of the way there ( https://github.com/kstenerud/concise-encoding/tree/master/an... ), so I could use those as a basis...

    One thing I'm not sure about is how to define a BNF rule that says for example: "An identifier is a series of characters from unicode categories Cf, L, M, N, and these specific symbol characters". BNF feels very ASCII-centric...

  • Working in the software industry, circa 1989 – Jim Grey
    5 projects | news.ycombinator.com | 11 Jul 2022
    It's still in the prerelease stage, but v1 will be released later this year. I'm mostly getting hits from China since they tend to be a lot more worried about security. I expect the rest of the world to catch on to the gaping security holes of JSON and friends in the next few years as the more sophisticated actors start taking advantage of them. For example https://github.com/kstenerud/concise-encoding/blob/master/ce...

    There are still a few things to do:

    - Update enctool (https://github.com/kstenerud/enctool) to integrate https://cuelang.org so that there's at least a command line schema validator for CE.

    - Update the grammar file (https://github.com/kstenerud/concise-encoding/tree/master/an...) because it's a bit out of date.

    - Revamp the compliance tests to be themselves written in Concise Encoding (for example https://github.com/kstenerud/go-concise-encoding/blob/master... but I'll be simplifying the format some more). That way, we can run the same tests on all CE implementations instead of everyone coming up with their own. I'll move the test definitions to their own repo when they're done and then you can just submodule it.

    I'm thinking that they should look more like:

        c1
  • Breaking our Latin-1 assumptions
    2 projects | news.ycombinator.com | 18 Jun 2022
    Ugh Unicode has been the bane of my existence trying to write a text format spec. I started by trying to forbid certain characters to keep files editable and avoid Unicode rendering exploits (like hiding text, or making structured text behave differently than it looks), but in the end it became so much like herding cats that I had to just settle on https://github.com/kstenerud/concise-encoding/blob/master/ct...

    Basically allow everything except some separators, most control chars, and some lookalike characters (which have to be updated as more characters are added to Unicode). It's not as clean as I'd like, but it's at least manageable this way.

  • I accidentally used YAML.parse instead of JSON.parse, and it worked?
    8 projects | news.ycombinator.com | 23 Jan 2022
    You might get a kick out of Concise Encoding then (shameless plug). It focuses on security and consistency of behavior.

    https://concise-encoding.org/

    In particular:

    * How to deal with unrepresentable values: https://github.com/kstenerud/concise-encoding/blob/master/ce...

    * Mandatory limits and security considerations: https://github.com/kstenerud/concise-encoding/blob/master/ce...

    * Consistent error classification and processing: https://github.com/kstenerud/concise-encoding/blob/master/ce...

  • Ask HN: Who Wants to Collaborate?
    58 projects | news.ycombinator.com | 1 Jan 2022
    In the above example, `&a:` means mark the next object and give it symbolic identifier "a". `$a` means look up the reference to symbolic identifier "a". So this is a map whose "recusive link" key is a pointer to the map itself. How this data is represented internally by the receiver of such a document (a table, a struct, etc) is up to the implementation.

    > - Time zones: ASN.1 supports ISO 8601 time types, including specification of local or UTC time.

    Yes, this is the major failing of ISO 8601: They don't have true time zones. It only uses UTC offsets, which are a bad idea for so many reasons. https://github.com/kstenerud/concise-encoding/blob/master/ce...

    > - Bin + txt: Again, I'm unclear on what you mean here, but ASN.1 has both binary and text-based encodings

    Ah cool, didn't know about those.

    > - Versioned: Also a little unclear to me

    The intent is to specify the exact document formatting that the decoder can expect. For example we could in theory decide make CBE version 2 a bit-oriented format instead of byte-oriented in order to save space at the cost of processing time. It would be completely unreadable to a CBE 1 decoder, but since the document starts with 0x83 0x02 instead of 0x83 0x01, a CBE 1 decoder would say "I can't decode this" and a CBE 2 decoder would say "I can decode this".

    With documents versioned to the spec, we can change even the fundamental structure of the format to deal with ANYTHING that might come up in future. Maybe a new security flaw in CBE 1 is discovered. Maybe a new data type becomes so popular that it would be crazy not to include it, etc. This avoids polluting the simpler encodings with deprecated types and bloating the format.

What are some alternatives?

When comparing go-concise-encoding and concise-encoding you can also consider the following projects:

diem - Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.

cue - The home of the CUE language! Validate and define text-based and dynamic configuration

logsuck - Easy log aggregation, indexing and searching

joystick - A full-stack JavaScript framework for building stable, easy-to-maintain apps and websites.

thgtoa - The Hitchhiker’s Guide to Online Anonymity

postal-codes-json-xml-csv - Collection of postal codes in different formats, ready for importing.

Joplin - Joplin - the secure note taking and to-do app with synchronisation capabilities for Windows, macOS, Linux, Android and iOS.

futurecoder - 100% free and interactive Python course for beginners

cargo-readme - Generate README.md from docstrings

FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project

vaku - vaku extends the vault api & cli

cue - CUE has moved to https://github.com/cue-lang/cue