The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 21 C Tutorial Projects
-
-
ffmpeg-libav-tutorial
FFmpeg libav tutorial - learn how media works from basic to transmuxing, transcoding and more. Translations: 🇺🇸 🇨🇳 🇰🇷 🇪🇸 🇻🇳 🇧🇷
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
Project mention: STM32MP2: ST’s first Linux capable 64-bit MPU with NPU, GPU and TSN | news.ycombinator.com | 2023-08-26
What cruftware? STM32 will run your code right away after reset clears[0].
-
You're probably interested in https://github.com/xdp-project/xdp-tools and https://github.com/xdp-project/xdp-tutorial. BPF programs are (usually) written in a restricted subset of C, it's not really as simple as nft add rule inet filter input tcp dport 80 accept.
-
Hypervisor-From-Scratch
Source code of a multiple series of tutorials about the hypervisor. Available at: https://rayanfam.com/tutorials
-
Project mention: eBPF Tutorial by Example 9: Capturing Scheduling Latency and Recording as Histogram | dev.to | 2024-01-20
Complete source code can be found at: https://github.com/eunomia-bpf/bpf-developer-tutorial/tree/main/src/9-runqlat
-
Project Github link: https://github.com/0015/ThatProject/tree/master/ESP32_MICROPHONE/ESP32_INMP441_SPEECH_TO_TEXT
-
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.
-
-
-
-
Project mention: Jest not recommended to be used in Node.js due to instanceOf operator issues | news.ycombinator.com | 2023-06-30
It’s often cheaper to couple things tightly. Abstractions and interfaces have costs. However, they also have benefits. Perhaps React and Preact is one such example.
React is a tiny fully agnostic library that does components, props, hooks and all that jazz. You can use it anywhere, from DOM to CLI. To tie it to DOM, a separate library exists—named, unimaginatively, ReactDOM—and that’s where the 100KB heft comes in.
Preact is the opposite: smaller, but coupled to DOM. The architecture probably doesn’t facilitate cool stuff like render components to embedded LCD[0], and even to do SSR you would have to add extra libraries.
[0] https://github.com/doodlewind/react-ssd1306/blob/master/docs...
-
Project mention: Visual Introduction to Hash-Array Mapped Tries (HAMTs) | news.ycombinator.com | 2023-08-24
This isn't a very good explanation. The wikipedia article isn't great either. I like this description:
https://github.com/mkirchner/hamt#persistent-hash-array-mapp...
The name does tell you quite a bit about what these are:
* Hash - rather than directly using the keys to navigate the structure, the keys are hashed, and the hashes are used for navigation. This turns potentially long, poorly-distributed keys into short, well-distributed keys. However, that does mean you have to compute a hash on every access, and have to deal with hash collisions. The mkirchner implementation above calls collisions "hash exhaustion", and deals with them using some generational hashing scheme. I think i'd fall back to collision lists until that was conclusively proven to be too slow.
* Trie - the tree is navigated by indexing nodes using chunks of the (hash of the) key, rather than comparing the keys in the node
* Array mapped - sparse nodes are compressed, using a bitmap to indicate which logical slots are occupied, and then only storing those. The bitmaps live in the parent node, rather than the node itself, i think? Presumably helps with fetching.
A HAMT contains a lot of small nodes. If every entry is a bitmap plus a pointer, then it's two words, and if we use five-bit chunks, then each node can be up to 32 entries, but i would imagine the majority are small, so a typical node might be 64 bytes. I worry that doing a malloc for each one would end up with a lot of overhead. Are HAMTs often implemented with some more custom memory management? Can you allocate a big block and then carve it up?
Could you do a slightly relaxed HAMT where nodes are not always fully compact, but sized to the smallest suitable power of two entries? That might let you use some sort of buddy allocation scheme. It would also let you insert and delete without having to reallocate the node. Although i suppose you can already do that by mapping a few empty slots.
-
-
dynamic-programming
A tutorial aimed to give an understanding of common dynamic programming problems
-
-
-
-
Project mention: Revolving Doors: Learning the Illumos Doors API | news.ycombinator.com | 2023-05-03
-
-
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
C Tutorial related posts
- From Nand to Tetris: Building a Modern Computer from First Principles
- Learn BPF... Where?
- Experiences using Zephyr RTOS for Embedded
- The FFmpeg Tutorial
- ESP32-S3 Digital Frame
- Can we make a video player with ESP32? The lack of resources of the ESP32 is not enough to play videos. However, if you separate the MJPEG image and audio AAC from the video, you can make it playable on ESP32.
- Error when I install KShare
-
A note from our sponsor - WorkOS
workos.com | 18 Mar 2024
Index
What are some of the best open-source Tutorial projects in C? This list will help you:
Project | Stars | |
---|---|---|
1 | raspberry-pi-os | 12,818 |
2 | ffmpeg-libav-tutorial | 9,440 |
3 | bare-metal-programming-guide | 2,382 |
4 | xdp-tutorial | 2,184 |
5 | Hypervisor-From-Scratch | 1,929 |
6 | bpf-developer-tutorial | 1,817 |
7 | IdeasNProjects | 1,632 |
8 | lsh | 1,366 |
9 | PortableGL | 898 |
10 | baremetal-arm | 564 |
11 | react-ssd1306 | 357 |
12 | hamt | 256 |
13 | zephyr-rtos-tutorial | 220 |
14 | dynamic-programming | 147 |
15 | DTLS-Examples | 129 |
16 | Unity_Projects | 84 |
17 | sdlamp | 50 |
18 | revolving-doors | 37 |
19 | SuperGreenOSBoilerplate | 27 |
20 | Multipipe_tutor | 26 |
21 | kuroko-wasm-repl | 8 |