• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dgraph-io / ristretto
74%
main: 74%

Build:
Build:
LAST BUILD BRANCH: fix-ticker-leak
DEFAULT BRANCH: main
Repo Added 07 Oct 2022 06:16PM UTC
Files 23
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH glogless
branch: glogless
CHANGE BRANCH
x
Reset
  • glogless
  • aman/cleanup
  • aman/lint
  • chore-fix-typo-error
  • cleanup_ticker_config
  • docs/format_readme
  • evan.jones/dropupdates-flaky
  • evan.jones/ristretto-docs
  • fix-ticker-leak
  • frankreh/fix-sketch3
  • joshua/sec
  • main
  • remove_glog
  • synk-fork
  • typo

29 Aug 2023 01:45PM UTC coverage: 73.696%. Remained the same
6013821634

push

web-flow
fix: support compilation to wasip1 (#344)

## Problem

I'm interested in getting ristretto to build to the new `wasip1` target,
but it fails due to ristretto's assumption that the program is being
compiled to a unix system where files can be mapped to memory. At this
time, the `x/sys/unix` package does not consider `wasip1` to be a unix
platform, and memory mapping isn't supported either when compiling to
WebAssembly.

```
$ GOOS=wasip1 GOARCH=wasm gotip build
package github.com/dgraph-io/ristretto
	imports github.com/dgraph-io/ristretto/z
	imports golang.org/x/sys/unix: build constraints exclude all Go files in /go/pkg/mod/golang.org/x/sys@v0.0.0-20221010170243-090e33056c14/unix
```

## Solution

The proposed solution in this PR is to provide stubs implementations of
the memory mapping functions which return `ENOSYS` to indicate that the
functionalities are not available when compiled to `GOOS=wasip1`.

If I'm reading the code correctly, this means that persisting data
structures to a storage medium will not be supported, but the rest of
ristretto should work as expected.

I believe this to be a useful trade-off since many dependents of
ristretto only use the in-memory data structures (e.g.
https://github.com/DataDog/datadog-agent/blob/main/pkg/obfuscate/cache.go,
which is what I'm interested in getting to compile).

A more advanced solution could be to rework the `z.Buffer` internals so
the data structure can work on platforms where mapping files to memory
isn't supported; however, this represents a bigger undertaking, I would
like to first unblock dependencies by allowing the program to compile.

Signed-off-by: Achille Roussel <achille.roussel@gmail.com>

2219 of 3011 relevant lines covered (73.7%)

2509668.67 hits per line

Relevant lines Covered
Build:
Build:
3011 RELEVANT LINES 2219 COVERED LINES
2509668.67 HITS PER LINE
Source Files on glogless
Detailed source file information is not available for this build.

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
6013821634 glogless fix: support compilation to wasip1 (#344) ## Problem I'm interested in getting ristretto to build to the new `wasip1` target, but it fails due to ristretto's assumption that the program is being compiled to a unix system where files can be m... push 29 Aug 2023 02:50PM UTC web-flow
73.7
See All Builds (7649)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc