Skip to content

Commit 1521c4f

Browse files
authored
Template (#4)
This is loosely based off of the Rust project's RFCs template, which you can find here: https://github.com/rust-lang/rfcs/blob/master/0000-template.md Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
1 parent 160c337 commit 1521c4f

File tree

1 file changed

+66
-38
lines changed

1 file changed

+66
-38
lines changed

proposals/0000-template.md

Lines changed: 66 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,66 @@
1-
# RFC 0000 - Template Mode
2-
3-
## Goals
4-
5-
1. Create RFCs
6-
1. ??
7-
1. Profit
8-
9-
## Diagrams
10-
11-
Here is an ASCII diagram:
12-
13-
```
14-
╔ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═
15-
16-
║ BitPackedArray
17-
18-
╚│═ ═ ═ ═ ═ ═ ═ ╤ ═ ═
19-
│ │
20-
│ │
21-
│ │
22-
│ │
23-
│ │
24-
│ │
25-
│ │ patch
26-
│ │ indices ╔ ═ ═ ═ ═ ═
27-
┌─────▼─────┐ ├─────────────▶ ArrayRef ║
28-
│░░░░░░░░░░░│ │ ╚ ═ ═ ═ ═ ═
29-
│░░Buffer░░░│ │
30-
│░░░░░░░░░░░│ │ patch
31-
└───────────┘ │ values ╔ ═ ═ ═ ═ ═
32-
encoded └─────────────▶ ArrayRef ║
33-
╚ ═ ═ ═ ═ ═
34-
```
35-
36-
We can have links, like https://github.com/vortex-data
37-
38-
BUT, we can also have [**LINKS**](https://vortex.dev) or [__links__](https://docs.vortex.dev)
1+
- Start Date: (today's date, YYYY-MM-DD)
2+
- RFC PR: [vortex-data/rfcs#0000](https://github.com/vortex-data/rfcs/pull/0000)
3+
- Tracking Issue: [vortex-data/vortex#0000](https://github.com/vortex-data/vortex/issues/0000)
4+
5+
## Summary
6+
7+
One paragraph explanation of the proposed change.
8+
9+
## Motivation
10+
11+
What problem does this solve? Include concrete use cases where possible.
12+
13+
- What specific use cases does this enable or improve?
14+
- What workflows or operations are painful, slow, or impossible today?
15+
16+
## Design
17+
18+
Describe the proposed design in enough detail that someone familiar with Vortex could implement it. This should cover:
19+
20+
- New or modified APIs, traits, or vtable entries.
21+
- How this interacts with existing components (encodings, layouts, scan, file format, etc.).
22+
- Key implementation details and corner cases.
23+
- Why is this the best approach in the space of possible designs?
24+
- Which crates are affected and how the dependency graph changes, if at all.
25+
26+
Use code examples and diagrams where they might help.
27+
28+
## Compatibility
29+
30+
- Does this change the file format or wire format? Is it backward/forward compatible?
31+
- Does this break any public APIs? If so, what is the migration path?
32+
- Are there performance implications?
33+
34+
If there are no compatibility concerns, briefly state why.
35+
36+
## Drawbacks
37+
38+
- Why should we _not_ do this?
39+
- What is the maintenance cost of this change?
40+
- Does this add complexity that could be avoided?
41+
42+
## Alternatives
43+
44+
- What other designs were considered and why were they rejected?
45+
- What is the cost of **not** doing this?
46+
- Is there a simpler approach that gets us most of the way there?
47+
48+
## Prior Art
49+
50+
How have other systems solved this or similar problems? Consider:
51+
52+
- Other columnar formats (Parquet, Arrow, etc.).
53+
- Database internals (DuckDB, DataFusion, Velox, etc.).
54+
- Relevant academic papers or blog posts.
55+
56+
This section helps frame the design in a broader context. If there is no relevant prior art, that is fine.
57+
58+
## Unresolved Questions
59+
60+
- What parts of the design need to be resolved during the RFC process?
61+
- What is explicitly out of scope for this RFC?
62+
- Are there open questions that can be deferred to implementation?
63+
64+
## Future Possibilities
65+
66+
What natural extensions or follow-on work does this enable? This is a good place to note related ideas that are out of scope for this RFC but worth capturing.

0 commit comments

Comments
 (0)